所以我正在探索 Rust,并且我已經閱讀了常量和不可變變數之間的技術差異。但似乎不可變變數可以做常量可以做的所有事情。那么,如果不可變變數可以完全替代它們,那么常量的存在意義何在?
uj5u.com熱心網友回復:
您應該考慮兩個計算時間:
- 編譯時間
- 運行
該常量在編譯時計算(并且可以在其他編譯時計算中使用),因此運行時間更快,因為它確實需要再次計算。
不可變變數總是在運行時計算(從通常在計算時不可用的外部輸入),并且在那里不能使用常量。
uj5u.com熱心網友回復:
那么,如果不可變變數可以完全替代它們,那么常量的存在意義何在?
雖然在某些用例中常量可以與不可變變數互換,但值類別之間的主要區別在于它們的語意。
立即宣告一個常量對讀者說明了很多關于該值的含義:特別是,包含該值的資訊必須在編譯時都可用。這是由編譯器強制執行的屬性。這為讀者設定了關于價值是什么以及可以用它做什么的期望。
當然,不可變變數的初始化要靈活得多。沒有強制要求這些值在編譯時是已知的,產生這些值的計算可能非常復雜,甚至隨著時間的推移而演變。
差異可能主要在于風格(在許多但不是所有用例中),但在涉及可讀性和可維護性的情況下,這種區別是有價值的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/415998.html
標籤:
下一篇:獲取變數的所有先前值
