[英]A property in a struct not being updated after being computed in willSet observer
提前抱歉,如果我的問題很愚蠢,我目前正在學習財產觀察員,我已經從一個很棒的 swift 在線教程中獲得了一個示例,以確定代碼是否有效,我正確地假設它是並決定實施它在 Swift 操場上。 我不明白為什么盡管 if 語句評估為 true,但isMillionaire屬性仍然為 false。
struct BankAccount{
var name: String
var isMillionaire = false
var balance: Int {
didSet {
if balance > 1_000_000 {
isMillionaire = true
} else {
isMillionaire = false
}
}
}
}
var bankUser1 = BankAccount(name: "John Appleseed", balance: 2_000_000)
print(bankUser1.isMillionaire) //Returns false
初始化時不會調用屬性觀察器,只有在此之后設置值時,這就是不執行didSet
的原因。
在這種特定情況下,由於isMillionaire
完全來自balance
並且不能直接更新,我建議使用計算屬性,因此它看起來像這樣:
var isMillionaire: Bool {
return balance > 1_000_000
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.