performance - 在Swift中`let`有什么好处?
我知道 Swift 鼓励我们程序员每次有意义时使用常量(let
)而不是变量(var
)。
这是一件好事,因为我们正在向编译器提供有关我们的代码含义的更多细节,编译器可以更好地防止我们犯错(例如更改一些不应更改的值)。
我的问题是,当我们使用常量而不是变量时,编译器是否会应用性能优化? (例如,执行时间更短,占地面积更小......)。
最佳答案:
2 个答案:
答案 0 :(得分:14)
你问过" ...当我们使用常量而不是变量时,编译器是否会应用一些性能优化?"
答案是肯定的,绝对是。
可变集合的组织方式可能与不可变集合的组织方式不同,以便允许更改它们。可变集合可以针对只读操作进行优化。
然后使用可变/不可变对象。编译器可能必须生成代码,当可变对象作为另一个对象的属性共享时复制该可变对象,以避免不必要的副作用。
不可变对象(equatable / comparative)的比较也可以通过可变对象的方式进行优化。
答案 1 :(得分:8)
现在的正确答案是“可能不是”。
向编译器提供附加信息总是明智的,但编译器已经相当聪明。在许多情况下,即使您使用var
,它也可以看到变量实际上是常量,因此说let
不会是任何新信息,也不会带来好处。
const
/ let
的最大好处是防止编程错误。它在非常特殊的情况下可以有一些性能优势,但是现代编译器并不需要程序员告诉他们变量只被赋值一次。
本文经用户投稿或网站收集转载,如有侵权请联系本站。