簡體   English   中英

在Swift中`let`有什么好處?

[英]What are the benefits of `let` in Swift?

我知道Swift確實鼓勵程序員每次有意義時使用常量( let )而不是變量( var )。

這是一件好事,因為我們正在向編譯器提供有關我們的代碼意味着什么的更多細節,並且編譯器可以更好地防止我們犯錯誤(例如,更改一些不應更改的值)。

我的問題是,當我們使用常量而不是變量時,編譯器是否會應用一些性能優化 (例如,執行時間更短,占地面積更小,......)。

你問“......當我們使用常量而不是變量時,編譯器是否會應用一些性能優化?”

答案是肯定的,絕對的。

可變集合的組織方式可以與不可變集合不同,以便允許更改它們。 可以針對只讀操作優化不可變集合。

然后是使用可變/不可變對象。 編譯器可能必須生成代碼,該代碼在將可變對象作為另一個對象的屬性共享時復制該可變對象,以避免不期望的副作用。

不可變對象(等同/可比較)的比較也可以以可變對象不能的方式進行優化。

Sulthan關於編譯器智能的觀點是一個很好的觀點。 編譯器通常可以推斷變量永遠不會從代碼分析中改變,這可以使基准測試變得難以與變量使用相比較。

現在的正確答案是“可能不是”。

向編譯器提供附加信息總是明智的,但是,編譯器已經非常智能。 在許多情況下,即使你使用var ,它也可以看到一個變量實際上是一個常量,所以說let不會是任何新的信息而且它不會帶來好處。

const / let的最大好處是防止編程錯誤。 它在非常特殊的情況下可以有一些性能優勢,但現代編譯器並不需要程序員告訴他們變量只分配一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM