美文网首页Swift
输入输出参数(In-Out Parameter)

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

作者: 坤哥爱卿 | 来源:发表于2019-09-27 10:40 被阅读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)

相关文章

网友评论

    本文标题:输入输出参数(In-Out Parameter)

    本文链接:https://www.haomeiwen.com/subject/tlgkuctx.html