如果为两个参数传递相同的变量,则获取错误。
有谁能解释为什么我们不能在输入参数函数中传递相同的变量,而我们可以在正常函数中传递

func swapTwoInts(a: inout Int, b: inout Int) {

    print(a)
    print(b)

}

var a = 12

swapTwoInts(a: &a, b: &a)

最佳答案

Apple Documentation
在函数中,不要访问作为传入传出传递的值
参数,即使原始值在当前
范围。访问原始值是同时访问值,
这违反了Swift的内存独占性保证。同样的
原因是,不能将同一值传递给多个输入输出参数。
在您的示例中,创建了同一变量的两个副本。当函数返回时,必须将它们赋给原始参数。这就是这种情况下的冲突。

10-07 19:49
查看更多