swift - 惰性 var 正常实例化和闭包实例化有什么区别?
问题描述
lazy var propertyOne: BabyYoda = BabyYoda(delegate: self.mandalorian)
对比
lazy var propertyTwo: BabyYoda = {return BabyYoda(delegate: self.mandalorian)}()
一个比另一个更有效吗?他们编译成完全相同的代码吗?我知道这propertyTwo
允许额外的代码行(例如在对象中设置额外的东西BabyYoda
),但这是我能想到的唯一区别。
解决方案
第二种语法,我称之为“定义和调用”,是使用几行代码初始化实例属性的合法方式。
请注意,就其本身而言,这些都与lazy
无关,这与您提出的特定问题无关。这实际上只是一种使在此实例中属性初始化器lazy
合法化的方法。self.mandalorian
这很有趣,但这是完全不同的事情。
推荐阅读
- swift - While循环,找到最接近零的值
- wordpress - Wordpress 插件上传超时 - nginx
- javascript - 创建简单网站密码的好方法?
- html - 提高 BeautifulSoup 的解析速度
- javascript - JSON 到 HTML 表 JavaScript 不工作
- javascript - 尝试使用 Vue 输出 WordPress 帖子数据时出现问题
- cassandra - 重新格式化时间戳以保持时间和时区
- php - 使用 PHP 抓取 Amazon.com 网页
- javascript - 运行 npm run serve 后,在 js 控制台中出现“错误:请手动安装 pg 包”
- machine-learning - 逻辑回归曲线未以我的数据为中心