1
Swift 3中有沒有什麼方法可以讓一個計算屬性的類在第一次計算上很昂貴,但是之後會保持不變,以便具有不同的getter(每個後續請求都有一個初始值,然後是另一個值)?即Swift屬性的多個Getters?
class Example {
var computationallyIntensive: String? {
return try? String(contentsOf: unlistedFile, encoding: .utf8)
}
}
我知道初始值設定項,但是這個屬性不需要在創建類時初始化。
理想的情況下,第二次調用將返回更快第一:
let test = Example()
if test.computationallyIntensive == "base case" {
print(test.computationallyIntensive)
}
有什麼辦法可以將一個setter添加到一個懶惰的var?換句話說,懶惰變量與計算屬性一起工作嗎? –
@BrandonBradley我的理解是,懶惰屬性必須計算,所以他們不允許setter。 – dasblinkenlight