使用常量(不可更改)比只是不改變變量有什麼好處嗎?常數與不變的變量?
1
A
回答
0
在一些編程語言,宣稱東西是不變將允許編譯器進行優化這將否則是不可能的。此外,聲明一些常量可以是一種有用的方式,用於記錄代碼中可能會被破壞的位置,如果值發生變化。
不幸的是,一些編程語言有時會做壞事與聲明不變的東西。例如,在一些.net語言中,如果通過可修改的引用傳遞一個聲明爲只讀的值類型,編譯器將會而不是拒絕允許這樣的操作,而是複製並傳遞它。這種隱式複製會損害效率,並可能導致意想不到的語義。
1
根據您的語言和編譯器,一個常數可能會生成時內聯&優化。變量可能會消耗堆棧空間,即使它從不改變。
1
通過使常數的值,編譯器可以剛剛替補它。例如,如果您有x/2
,編譯器可以計算該值並使用該值,而不必發出代碼來檢索x
的值,然後將其除以2.
另外,您不必擔心意外改變價值。例如,在C的語言,你可能會不小心輸入if (x = 2)
當你的意思是if (x == 2)
這將改變的x
的價值,如果它是一個變量。
1
任何維護你的代碼的未來(包括你)就不用環顧四周,看到(如果任何地方)發現一個bug或添加功能,當一個常數改變 - 他們就會知道了蝙蝠的權利它不能被改變。
相關問題
- 1. 常量/變量和不可變/易變
- 2. 常量與變量不匹配
- 3. PHP常量與變量
- 4. 變量與數組變量
- 5. 爲什麼左變量與變量產生不同的結果與常量?
- 6. Php數組與正常變量
- 7. 變量與常量與PHP中的關聯數組的關係
- 8. 變量===常數和常量===變量有什麼區別
- 9. 與可變+ PHP數量遞增變量
- 10. 經典的ASP應用程序變量與常規變量
- 11. 與不足變量
- 12. R ggplot2 :: geom_density與一個常量變量
- 13. PHP連續變量與常量
- 14. C#DataContract與非常量變量名稱
- 15. 字符串常量與變量
- 16. 與數組變量
- 17. PHP:與變量串聯的新變量(變量變量)
- 18. LLVM:常量變量
- 19. 常量變量也是類變量嗎?
- 20. 「分數」變量不變
- 21. 整數變量不變
- 22. 非常變量
- 23. Django塊變量與變量
- 24. 複數變量(變量名與其他變量的變化)是否可能?
- 25. 變量變量不會與數組一起工作
- 26. Doxygen中的變量常量
- 27. Javascript中的常量變量
- 28. 綁定變量的數量與令牌的數量不匹配
- 29. 綁定變量的數量與令牌的數量不匹配
- 30. 與變量Logistic迴歸不改變
啊,我想這是有道理的。謝謝你澄清:) – Deley