ios – Swift输入输出参数 – 用例

我最近在 Swift中了解了“In-Out Parameters”,我对你有疑问.

“In-Out Parameters”优于e.x时的用例是什么.返回可以赋值给var的值的func?

谢谢你的帮助.

最佳答案 我认为inout参数的一个很好的用例是 The Swift Programming Language提供的swapTwoInts函数.

func​ ​swapTwoInts​(​inout​ ​a​: ​Int​, ​inout​ ​b​: ​Int​) {
​    ​let​ ​temporaryA​ = ​a
​    ​a​ = ​b
​    ​b​ = ​temporaryA
​}

特定

var a = 0
var b = 1

你可以轻松打电话

swapTwoInt(&a, b: &b)

场景2:没有参数

另一方面,如果没有inout参数,函数应该写成如下(实际上更紧凑)

func swapTwoInt(a: Int, b: Int) -> (a:Int, b:Int) {
    return (a:b, b:a)
}

但使用需要3行代码而不是1行代码:

let swapped = swapTwoInt(a, b: b)
a = swapped.a // was swapped.b, fixed as suggested by Martin R
b = swapped.b

注意事项

如您所见,在场景2中,函数逻辑的一部分需要在函数本身之外编写.这并不好,因为每次调用函数时都会产生代码的开销.

点赞