Skip to content

常量

Solidity 中的常量是指一旦定义,其值无法更改的变量。

使用常量可以增加代码的可读性和可维护性,因为它可以避免其他部分的代码意外更改变量的值。

Solidity 中定义常量可以使用关键字 constantimmutable,这两者在最近的版本中已经没有了二义性。

示例

这里我们给出使用 immutable 定义常量的例子:

solidity
pragma solidity ^0.8.0;

contract ConstantsExample {
    // 定义一个不可更改的常量
    immutable uint256 constant MY_CONSTANT = 123;

    function getConstant() public view returns (uint256) {
        // 返回常量的值
        return MY_CONSTANT;
    }
}

在上面的示例中,我们定义了一个名为 MY_CONSTANT 的常量,并将其设置为123。由于 MY_CONSTANT 是一个immutable 常量,因此其值无法更改。

getConstant() 函数中,我们使用了 view 来声明这个函数不会修改合约状态,并返回 MY_CONSTANT 的值。在 Solidity 中,view 关键字和 pure 关键字用来表示合约函数不会修改合约状态。

有了这个常量,我们可以在代码中多个地方使用它,而不用担心其值会被修改。如果我们尝试修改 MY_CONSTANT 的值,Solitidy 编译器将抛出一个错误。

solidity
// 错误:无法更改"MY_CONSTANT",因为它是不可更改的
MY_CONSTANT = 456;