【发布时间】:2020-04-24 11:39:06
【问题描述】:
lazy var propertyOne: BabyYoda = BabyYoda(delegate: self.mandalorian)
对比
lazy var propertyTwo: BabyYoda = {return BabyYoda(delegate: self.mandalorian)}()
一种比另一种更有效吗?他们编译成完全相同的代码吗?
我知道propertyTwo 允许额外的代码行(例如,在BabyYoda 对象中设置额外的东西),但这是我能想到的唯一区别。
【问题讨论】:
-
它们实际上是一回事。但是如果你需要多行来配置它,你通常只会使用闭包语法。否则,闭包只会增加不必要的语法噪音。
标签: swift closures lazy-initialization