Swift关键字之 inout

一般参数在方法中往往是值传递,当这个函数结束时,参数变量就会被销毁,不会改变方法以外的变量。因此,我们可不可以通过一个函数改变函数外面的变量呢?

这时,我们就要用到inout关键字

在声明函数时,在参数前面用inout修饰,在函数内部可以改变外部变量。有个小细节要注意,在传入参数时,只能传入变量的地址(即在变量前+&(取地址符)),不能传入常量和字面量,inout修饰的参数是不能有默认值的,有范围的参数集合也不能被修饰,另外,一个参数一旦被inout修饰,就不能再被var和let修饰了。

1
2
3
4
5
6
7
8
9
10
func swapTwoInts(inout a:Int , inout b:Int) {
let temp = a
a = b
b = temp
}

var someInt = 7
var anotherInt = 107
swapTwoInts(&someInt, b: &anotherInt)
print("someInt is \(someInt),anotherInt is \(anotherInt)")
文章作者: Ammar
文章链接: http://lizhaoloveit.cn/2015/07/09/Swift%E5%85%B3%E9%94%AE%E5%AD%97%E4%B9%8B-inout/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ammar's Blog
打赏
  • 微信
  • 支付宝

评论