原文: 《Solidity 極簡入門: 9. 常量constant 和immutable》

我最近在重新學solidity,鞏固一下細節,也寫一個「Solidity 極簡入門」,供小白們使用(編程大佬可以另找教程),每週更新1-3 講。

所有代碼和教程開源在github:github.com/AmazingAng/WTFSolidity

這一講,我們介紹solidity 中兩個關鍵字,constant(常量)和immutable(不變量)。狀態變量聲明這個兩個關鍵字之後,不能在合約後更改數值;並且還可以節省gas。另外,只有數值變量可以聲明constant 和immutable;String 和bytes 可以聲明為constant,但不能為immutable。

constant 和immutableconstant

constant

變量必須在聲明的時候初始化,之後再也不能改變。嘗試改變的話,編譯不通過。

Solidity極簡入門第九講:常量constant和immutable

immutable

immutable 變量可以在聲明時或構造函數中初始化,因此更加靈活。

Solidity極簡入門第九講:常量constant和immutable

你可以使用全局變量例如address(this),block.number,或者自定義的函數給immutable 變量初始化。在下面這個例子,我們利用了test() 函數給IMMUTABLE_TEST 初始化為9:

Solidity極簡入門第九講:常量constant和immutable

總結

這一講,我們介紹solidity 中兩個關鍵字,constant(常量)和immutable(不變量),讓不應該變的變量保持不變。