美文网首页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