一般参数在方法中往往是值传递,当这个函数结束时,参数变量就会被销毁,不会改变方法以外的变量。因此,我们可不可以通过一个函数改变函数外面的变量呢?
这时,我们就要用到inout关键字
在声明函数时,在参数前面用inout修饰,在函数内部可以改变外部变量。有个小细节要注意,在传入参数时,只能传入变量的地址(即在变量前+&(取地址符)),不能传入常量和字面量,inout修饰的参数是不能有默认值的,有范围的参数集合也不能被修饰,另外,一个参数一旦被inout修饰,就不能再被var和let修饰了。
1 | func swapTwoInts(inout a:Int , inout b:Int) { |