我最近了解了" In-Out Parameters"在斯威夫特,我向你提问。
"输入输出参数"什么是用例?比e.x更好。 func返回可以赋值给var?
的值感谢您的帮助。
答案 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)
另一方面,没有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 中,函数逻辑的一部分需要在函数本身之外写入。这并不好,因为每次调用函数时都会产生代码的开销。