文章
Solidity中的view关键字
view 关键字用于修饰函数,表示该函数不会修改区块链上的状态
在 Solidity 中,view 关键字用于修饰函数,表示该函数不会修改区块链上的状态。
具体来说,当一个函数被声明为 view 类型时,它具有以下特性:
- 只读操作:它只能读取区块链上的状态变量,不能修改它们。这意味着它不能改变任何存储在合约中的数据,也不能发出事件或创建新的合约。
- 不消耗 Gas:由于
view函数不修改状态,它们可以在不消耗任何 Gas 的情况下执行。这使得它们非常适合查询合约状态,例如获取余额、读取存储的变量等。 - 可以在链下调用:
view函数可以由外部账户或DApp在不发送交易的情况下直接调用。这意味着你可以在不需要支付交易费用的情况下获取数据。NumberInterface这个例子中:
contract NumberInterface {
function getNum(address _myAddress) public view returns (uint);
}
getNum 函数被声明为 view,这意味着:
- 它将根据传入的
_myAddress参数,从某个地方(例如,另一个合约的存储)读取一个数字。 - 它不会改变任何区块链上的数据。
- 调用这个函数不需要花费 Gas。
总结一下,
view关键字的作用是明确表示一个函数是“只读”的,不会对区块链状态产生任何影响,因此执行起来更高效、更便宜。