Swift输入输出参数 - 用例

时间:2015-12-03 09:36:59

标签: ios swift swift2

我最近了解了" In-Out Parameters"在斯威夫特,我向你提问。

"输入输出参数"什么是用例?比e.x更好。 func返回可以赋值给var?

的值

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为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参数

另一方面,没有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 中,函数逻辑的一部分需要在函数本身之外写入。这并不好,因为每次调用函数时都会产生代码的开销。