我正在学习Swift,我无法理解为什么这段代码打印出一个冗余输出:
class A {}
var x: A {
set { print("set") }
get {
print("get")
return A()
}
}
func f(inout y: A) { print("f") }
f(&x)
结果是:
get
f
set
get
为什么最后到达这里? 如果我在f:
中添加另一个inout参数class A {}
var x: A {
set { print("set") }
get {
print("get")
return A()
}
}
func f(inout y: A, inout z: Int) { print("f") }
var z = 10
f(&x, z:&z)
新结果是:
get
f
set
你能清楚我吗?