輸出是什么:
var x = 5
func increment() -> Int {
defer { x = 1 }
return x
}
x = increment()
let result = increment()
print(x, result, x)
答案是 6 5 6,我不知道為什么結果是 5?
uj5u.com熱心網友回復:
請注意,它increment始終回傳 的當前值x。這是因為是在陳述句defer之??后執行的。return
后
x = increment()
x仍然是 5。increment回傳 5,遞增x到 6,然后x再次分配回傳值。
后
let result = increment()
x變為 6,result為 5。increment像以前一樣回傳 5,遞增x到 6,然后將回傳值分配給result.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/496759.html
標籤:迅速
