谁能解释一下Neuburg在iOS 9 swift basics本书中的惰性属性吗?
“语言上有一些小漏洞:惰性实例属性不能具有setter观察者,也没有惰性let(因此您不能轻易将惰性实例属性设置为只读)”...。尤其是关于没有惰性让我们防止只读
最佳答案
从Apple documentation:
您必须始终将惰性属性声明为变量(使用var关键字),因为直到实例初始化完成后才可能检索其初始值。常量属性在初始化完成之前必须始终具有一个值,因此不能声明为惰性的。
但是,如果您希望从类/结构中获得一个懒惰的值,并希望确保没有人可以写回该值,则只需使用带有返回值的func。或像milos所说的那样-懒惰属性上的 private 集。 (这是不一样的事情)因此,一切皆有可能。 :)