Swift延迟行为

  • 本文关键字:延迟 Swift swift
  • 更新时间 :
  • 英文 :


输出结果:


var x = 5
func increment() -> Int {
defer { x += 1 }
return x
}
x = increment()
let result = increment()
print(x, result, x)

答案是6 5 6,我不知道为什么结果是5?

观察increment总是返回x的当前值。这是因为defer是在return语句之后执行的。

x = increment()

x仍然是5。increment返回5,将x加1为6,然后再次将返回值赋给x

let result = increment()

x变为6,result变为5。increment像以前一样返回5,将x加1为6,然后将返回值赋给result

最新更新