【发布时间】:2019-08-07 05:18:03
【问题描述】:
通常,许多 swift 开发人员通过 lambda 执行来初始化惰性变量。但是我不明白为什么当它是一行计算时他们使用 lambda。以下代码示例有什么不同?
var x = 7
var y = 9
lazy var z = x * y
var x = 7
var y = 9
lazy var z: Int = {
return x * y
}()
我是 swift 新手,从幼稚的角度来看,区别如下:
- 第一个示例立即计算
x * y但通过惰性方式初始化值 - 第二个样本计算并以惰性方式初始化。
对吗?
这个问题不是重复的 What is the advantage of closure stored property Initialisation? 因为它是关于惰性计算的。
【问题讨论】:
-
风格选择?我的意思是你也可以在普通属性上使用 lambda。
-
显然是自定义。建议重复的原因是一样的
-
当我在谷歌上搜索“lazy in swift”时,我发现
{ ... }()没有对象自定义是顶部链接和许多其他描述中的常见情况。现在我明白了没有区别。但是只有与 cmets 相结合的重复问题的链接(我以前无法谷歌)解释了我的区别。但是好的,我投票结束了问题。
标签: swift