5.6 Swift中inout参数
/** inout参数 例子交换 a 和 b */
var x = 10 var y = 19 swap3(a: x,b: y)
/** 可以看到 在swap3 函数中 a b 进行了修改, 但是 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)") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |