5.6 Swift中inout参数

前端之家收集整理的这篇文章主要介绍了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)")

}

原文链接:https://www.f2er.com/swift/322453.html

猜你在找的Swift相关文章