Swift

输入输出参数(In-Out Parameter)

2019-09-27  本文已影响0人  坤哥爱卿

下面我们通过交换两个参数值的方式讲解一下

可以用inout定义一个输入输出参数:可以在函数内部修改外部实参的值(类似于系统提供的swap交换方法)

//输入输出参数
var v1 = 20
var v2 = 30

func swapValue(_ v1: inout Int,_ v2: inout Int){
    let tmp = v1
    v1 = v2
    v2 = tmp
}

swapValue(&v1, &v2)
print(v1,v2)
注意:
1. 可变参数不能用inout标记
2. inout不能有默认值
3. inout参数的本质是地址传递(引用传递),可以用汇编的方式验证,playground中是不能显示汇编的
4. inout参数只能传入可被多次赋值的(变量)

也可以用元组的方式交换两个参数的值(更简便)

//元组方式交换值
var v1 = 40
var v2 = 50

func swapValues(_ v1: inout Int,_ v2: inout Int){
    (v1,v2) = (v2,v1)
}
swapValues(&v1, &v2)
print(v1,v2)
上一篇下一篇

猜你喜欢

热点阅读