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