Skip to main content

Solidity constant

Solidity 中的 constant 关键字用来定义常量。也就是在编译期间就确定值,以后都不能再改变的变量。因为 constant 是不能更改的,所以使用它可以避免意外修改那些不应该改变的值。提高合约安全性。

举个例子:假设你写了一个借贷合约,要求抵押率为 3 倍,同时你预期这个比率永远都不会改变的。那么你可以把这个比率定义为一个 constant 变量。

uint constant ratio = 3;

constant 的值必须能在编译期间确定

constant 变量的值必须能在编译期间确定, 否则会返回编译错误。所以你不能用普通变量给 constant 变量赋值。

constant 的值必须能在编译期间确定
uint a = 3;
uint constant ratio = a; // 不合法,不能用普通变量给 `constant` 赋值

uint constant b; // 不合法,必须在声明时就赋值
试一试 »

constant 不能更改

constant 必须在声明的时候赋值(初始化),不能在其他地方为其赋值。

constant 不能更改
uint constant ratio = 3;

constructor() {
ratio = 0; // 不合法
}

function f() public {
ratio = 0; // 不合法
}
试一试 »