文章介绍了在Solidity中使用constant
关键字定义不可变变量,并提供了一个ERC20代币合约中定义最大供应量的示例代码。
不可变变量可以在构造函数中设置一次,但如果你有一个永远不会改变的数字怎么办?
与其他语言一样,Solidity 有 constant 关键字。这表示该值是固定的,永远不会改变。
假设你有一个 ERC20 代币,其铸造量永远不应超过 2200 万。
这是实现它的简洁方式
**contract ExampleERC20 {
uint256 public constant MAX_SUPPLY = 22_000_000;
// erc20 代码
function mint(unint256 amount) external {
require(totalSupply() + amount <= MAX_SUPPLY, "max supply exceeded");
balanceOf[msg.sender] += amount;
emit Transfer(address(0), msg.sender, amount);
}
// erc20 代码的其余部分
}**
请注意,22000000 写为 22_000_000。它们的含义相同,但后者更具可读性。数字中的下划线被简单地忽略。
查看 Solidity 训练营 ,以了解更多关于智能合约开发和代币标准的内容。
- 原文链接: rareskills.io/learn-soli...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!