Solidity 0.6.5[1] 更新引入了一个新的关键字 immutable , 它与之前的constant常量有何不同呢?...constant 常量
constant 修饰的变量需要在编译期确定值, 链上不会为这个变量分配存储空间, 它会在编译时用具体的值替代, 因此, constant常量是不支持使用运行时状态赋值的(例如:...TEXT = "abc";
}
immutable 不可变量
immutable 修饰的变量是在部署的时候确定变量的值, 它在构造函数中赋值一次之后,就不在改变, 这是一个运行时赋值, 就可以解除之前...constant 不支持使用运行时状态赋值的限制.
immutable不可变量同样不会占用状态变量存储空间, 在部署时,变量的值会被追加的运行时字节码中, 因此它比使用状态变量便宜的多, 同样带来了更多的安全性...这个特性在很多时候非常有用, 最常见的如 ERC20[2]代币用来指示小数位置的decimals 变量, 它应该是一个不能修改的变量, 很多时候我们需要在创建合约的时候指定它的值, 这时 immutable