智能合约中,状态变量的值如果恒定不变,就可以通过 constant 进行修饰,定义为常量。

常量的命名常常使用大写字母表示,单词之间用下划线“_”连接。

常量有如下规定:

  • 不是所有的类型都支持常量,当前仅支持值类型字符串
  • constant常量必须在编译期间通过一个表达式赋值
  • 编译器并不会为constant常量storage上预留空间
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract SolidityTest {
    uint public constant X = 32**22 + 8;
    string public constant TEXT = "abc";
    bytes32 public constant MY_HASH = keccak256("abc");
}

常量 constant 特点

  • 常量与变量相对,需要硬编码在合约中,合约部署之后,无法改变。
  • 常量更加节约gas,一般用大写来代表常量。

下一章:Solidity 运算符

Solidity 支持以下类型的运算符:算术运算符比较运算符逻辑(或关系)运算符赋值运算符条件(或三元)运算符让我们看一个简单的表达式:4 + 5 = 9这里4和5称为操作数,+称为运算符。运算符Solidity ...