/**
inout参数
例子交换 a 和 b
*/
var x = 10
var y = 19
swap3(a: x,b: y)
/**
但是 x y 并没有进行修改
这是一个典型的认识误区,我们想当然的认为 x y 进行了修改
只是变量 x当前的值赋给了a
变量 y当前的值赋给了 b
在C语言中我们知道可以传递 x y 变量的地址
*/
print(x)
print(y)
/**
把 x y 变量本身传递给了 函数
a 引用了 x , b 引用了y
& 地址
*/
swap4(a: &x,b: &y)
print("----------------->")
print(x)
print(y)
func swap3(a:Int,b:Int) -> Void {
var a = a
var b = b
let t = a
a = b
b = t
print("\(a),\(b)")
}
func swap4(a:inout Int,b:inout Int) -> Void {
var a = a
var b = b
let t = a
a = b
b = t
print("\(a),\(b)")
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。