在Swift中,默认情况下,结构体和值类型按值传递,就像在C#中一样。但是C#还具有非常实用的ref关键字,它强制参数通过引用传递,以便在函数内更改相同的实例并从调用者的范围内访问。是否有一种方法在Swift中实现相同的结果?
在Swift中,默认情况下,结构体和值类型按值传递,就像在C#中一样。但是C#还具有非常实用的ref关键字,它强制参数通过引用传递,以便在函数内更改相同的实例并从调用者的范围内访问。是否有一种方法在Swift中实现相同的结果?
使用 inout
修饰符来定义函数参数。
func swapTwoInts(a: inout Int, b: inout Int) {
let temporaryA = a
a = b
b = temporaryA
}
swapTwoInts(&someInt, &anotherInt)
inout
限定符在类型之前,例如:func swapTwoInts(a: inout Int, b: inout Int)
。 - Ryan H.var
是为了在本地方法作用域中拥有可变对象 -inout
是为了从方法中改变自身作用域中的对象。要小心。 - Eric Aya