微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)")

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐