Solidity 返回函数为什么是常量?

Kex*_*Kex 2 ethereum solidity

我只是从坚固开始。我有一个这样的功能:

function get() constant returns (uint) {
    return storedData;
  }
Run Code Online (Sandbox Code Playgroud)

这里的constant关键字有什么用?我知道在这个键盘之后我们定义了返回类型但是为什么它前面需要常量?是否有替代方案,例如var

小智 5

“constant”关键字意味着函数不会改变合约的状态,这意味着它不会改变任何数据,因此合约状态和数据保持......不变。

这样的函数在您的节点中自行执行时不会消耗gas(如果在改变合约状态/数据的函数中运行,它可能会增加gas消耗,因为这样的函数调用需要由矿工执行并包含在块中.

  • “constant on 函数曾经是查看的别名,但在 0.5.0 版本中被删除了。” https://docs.soliditylang.org/en/v0.8.10/contracts.html#function-modifiers (3认同)