【发布时间】:2015-11-24 18:39:30
【问题描述】:
在 Swift 中,我们可以设置一个存储属性来使用闭包:
class Test {
var prop: String = {
return "test"
}()
}
对
或者让惰性存储属性使用闭包:
class Test {
lazy var prop: String = {
return "test"
}()
}
在这两种情况下,用于获取属性值的代码只运行一次。似乎它们是等价的。
在使用闭包时,我应该什么时候使用惰性存储属性而不是计算属性?
【问题讨论】:
-
其实都是存储属性,不是计算属性。
-
正如 Martin 所说,两者都是存储属性。在创建类 Test 的实例时评估第一个的值。第二个是惰性的,当您的代码第一次需要它的值时,它会“按需”评估。
-
@MartinR 感谢您的更正,将解决问题。
标签: swift closures lazy-evaluation