状态变量可以被定义为constant常量;
一般用全大写加下划线的格式表示,如 MY_ADDRESS;
不是所有的类型都支持常量,当前支持的仅有值类型和字符串。
下面的代码的区别是 有没有加constant ,部署合约可以看到 加了constant常量的合约消耗的gas费较少;
pragma solidity ^0.8.7;
contract Counter{
address public constant MY_ADDRESS = 0x3Ded1C92C515138242839c7d30520f07f8D97508;
uint public constant MY_UINT = 123;
}
contract Var{
address public MY_ADDRESS = 0x3Ded1C92C515138242839c7d30520f07f8D97508;
uint public constant MY_UINT = 123;
}