我询问了有关堆栈溢出的多个问题,但没有得到可以定义什么是“LAZY”关键字以及为什么我们在 Swift 中使用它的答案。我对 Swift 很陌生,请解释一下。
该词在两种情况下使用。
-
惰性变量是一种存储的属性,只计算一次,但直到第一次引用它时才计算。如果我有这个:
var x: Int = someExpensiveFunction()
它是在实例化其所属对象时计算的。如果我这样做
lazy var x: Int = someExpensiveFunction()
直到我第一次想使用时才计算x
.
-
惰性序列是根据需要计算某些操作的序列。例如在这段代码中
[1, 2, 3].map { someExpensiveFunction($0) }
映射序列立即完全计算出来。然而在下面的
[1, 2, 3].lazy.map { someExpensiveFunction($0) }
最终序列的每个连续元素仅在被要求时计算,例如通过迭代器。
我想,从技术上讲,在第二种情况下lazy
没有被用作关键字,但为了完整性我将其包含在内。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)