inout:
- 让值类型以引用方式传递(即传递的是内存地址),这样以后的操作会影响原始数据。
- inout修饰的参数不能有默认值,且 有范围的参数集合也不能用inout修饰
- 修饰参数的inout var let 不能并存,即 如果参数用inout修饰,就不能使用 var let修饰。
例子:
var value = 50
print(value) // 此时value值为50
func increment( num: inout Int, length: Int = 10) {
num += length
}
increment(num: &value)
print(value) // 此时value值为60,成功改变了函数外部变量value的值
- 声明函数 increment,在参数中使用inout 修饰,函数内部实现修改 外部值类型变量。
- 调用函数,传入参数时,在参数值前面加&符号修饰,表明此变量值在函数内部是可以被改变的。
网友评论