为什么 ERC20 balanceof() 使用常量?
Why does ERC20 balanceof() use constant?
ERC20 代币标准指定 balanceof()
和 constant
:
function balanceOf(address _owner) public constant returns (uint256 balance) {
return balances[_owner];
}
但是这个函数并没有改变任何东西的状态。那么这里的constant是什么意思呢?
标有常量修饰符的函数做两件事。
- 任何在函数中更改状态的尝试都不会写入链中。
- 除非从另一个非常量函数调用,否则来自客户端的调用不会使用气体。
在 ERC20 标准中指定这一点只会确保您遵守这些规则。使用令牌的客户不应该为了获得余额信息而意外地支付消耗的 gas。
ERC20 代币标准指定 balanceof()
和 constant
:
function balanceOf(address _owner) public constant returns (uint256 balance) {
return balances[_owner];
}
但是这个函数并没有改变任何东西的状态。那么这里的constant是什么意思呢?
标有常量修饰符的函数做两件事。
- 任何在函数中更改状态的尝试都不会写入链中。
- 除非从另一个非常量函数调用,否则来自客户端的调用不会使用气体。
在 ERC20 标准中指定这一点只会确保您遵守这些规则。使用令牌的客户不应该为了获得余额信息而意外地支付消耗的 gas。