inout

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 修饰,函数内部实现修改 外部值类型变量。
  • 调用函数,传入参数时,在参数值前面加&符号修饰,表明此变量值在函数内部是可以被改变的。

你可能感兴趣的:(inout)