我最近在 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中,函数逻辑的一部分需要在函数本身之外编写.这并不好,因为每次调用函数时都会产生代码的开销.