【发布时间】:2014-11-20 18:58:32
【问题描述】:
在使用 Swift 时,我尝试编写一个只读且惰性的初始化属性。我很快就写了那行代码,只是为了知道这是不允许的。
// no valid Swift code.
lazy let foo : Int = { return 42 }()
您必须将惰性属性声明为var。
这本 swift 书清楚地指出, let with lazy 是不可能的:
“您必须始终将惰性属性声明为变量(使用 var 关键字),因为在实例初始化完成之前可能无法检索其初始值。常量属性在初始化完成之前必须总是有一个值,因此不能被声明为惰性。”
假设我想在 swift 中有一个只读的惰性属性。存档的最佳方式是什么?
【问题讨论】:
标签: swift