Solidity - View 和 Pure 函数2025 年 5 月 27 日 | 4 分钟阅读 View 函数Solidity 的 view 函数用于从区块链中提取信息并返回,而不会更改合约的状态。 使用这些函数可以只读访问合约的状态变量。 通过将其指定为 "view",您可以确保函数不会更改合约的状态或它访问的任何变量。 由于 view 函数是只读的,因此可以确保状态变量在被调用后无法更改。 如果 view 函数中有更改状态变量、发出事件、创建新合约、使用 selfdestruct 方法、通过调用传输以太币、调用不是 "view 或 pure" 的函数、使用低级调用等语句,编译器将引发错误。 get 方法的默认值是 view 函数。 示例:为了计算两个无符号数的除法和减法,合约 Main 在下面的例子中指定了一个 view 函数。 输出 ![]() 纯函数Pure 函数仅使用提供给它们的参数或它们包含的任何局部变量返回值;它们不读取或更改状态变量。 如果在 pure 函数中找到读取状态变量、访问地址或余额、访问全局变量、调用非 pure 函数等语句,编译器会发出警告。 在 Solidity 中,pure 函数提升了 view 函数的概念。 它们不读取或访问任何状态变量,也不修改状态。 Pure 函数仅取决于提供给它们的输入参数;它们是完全独立的。 示例:合约 Main 在下面的例子中定义了一个 pure 函数来计算两个整数的除法和减法。 输出 ![]() pure 和 view 函数的区别View 和 pure 的区别在于,view 说明函数可以从区块链读取,但不能更改合约的状态,而 pure 说明函数既不能从区块链读取,也不能更改合约的状态。 当函数需要访问或读取状态变量、余额或从不改变状态的其他函数或合约读取时,它使用 view 修饰符。 使用: 使用 pure 修饰符的函数仅根据输入参数执行计算或操作,也就是说,无需从区块链获取任何信息。 演示输出 ![]() 当“离链”调用 view 和 pure 函数时,例如从 Web3 提供程序调用,它们不使用 gas,因为它们不修改任何状态。 使用 Pure 和 View 函数的优点
|
我们请求您订阅我们的新闻通讯以获取最新更新。