任何人都可以解释一下 iOS 9 Swift 基础知识书中 neuburg 的有关惰性属性的评论吗?
“语言中存在一些小漏洞:惰性实例属性不能有setter观察者,并且没有惰性let(因此您不能轻易地将惰性实例属性设置为只读)”......特别是关于无惰性让只读的阻止能力
最佳答案
来自苹果documentation:
You must always declare a lazy property as a variable (with the var keyword), because its initial value might not be retrieved until after instance initialization completes. Constant properties must always have a value before initialization completes, and therefore cannot be declared as lazy.
但是,如果您想从类/结构中获取一个惰性值,并且希望确保没有人可以写回该值,那么只需使用带有返回值的 func 即可。或者像米洛斯所说 - 一个惰性属性(property)上的私有(private)(集)。 (这不是一回事)所以某种程度上一切皆有可能。 :)
关于ios - Swift - 为什么不能轻松地将惰性属性设置为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36338339/