代码编织梦想

view

可以将函数声明为 view 类型,这种情况下要保证不修改状态。

下面的语句被认为是修改状态:

  1. 修改状态变量。
  2. 产生事件。
  3. 创建其它合约。
  4. 使用 selfdestruct。
  5. 通过调用发送以太币。
  6. 调用任何没有标记为 view 或者 pure 的函数。
  7. 使用低级调用。
  8. 使用包含特定操作码的内联汇编。

pure

Pure 纯函数,比view更加纯粹

函数可以声明为 pure ,在这种情况下,承诺不读取也不修改状态变量。

特别是,应该可以在编译时确定一个 pure 函数,它仅处理输入参数和 msg.data ,对当前区块链状态没有任何了解。 读取constant,依然视作pure。

除了上面解释的状态修改语句列表之外,以下被认为是读取状态:

  1. 读取状态变量。
  2. 访问 address(this).balance 或者 <address>.balance。
  3. 访问 block,tx, msg 中任意成员 (除 msg.sig 和 msg.data 之外)。
  4. 调用任何未标记为 pure 的函数。
  5. 使用包含某些操作码的内联汇编。
  6. 读取 immutable 变量
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_37298500/article/details/126998739

solidity constant view pure关键字的区别与联系_码说ai的博客-爱代码爱编程

在Solidity中constant、view、pure三个函数修饰词的作用是告诉编译器,函数不改变/不读取状态变量,这样函数执行就可以不消耗gas了(是完全不消耗!),因为不需要矿工来验证。所以用好这几个关键词很重要,不言而喻,省gas就是省钱!   这三个关键词有什么区别和联系,简单来说,在Solidity v4.17之前,只有constant,后

solidity[4]-pure与view剖析_唯识相链的博客-爱代码爱编程_pure和view

solidity[4]-pure与view剖析 pure与view代码例子 如下的一段solidity智能合约中,只要有了pure与view修饰符的函数,那么调用函数就不会消耗gas。 而没有pure与view修饰的函数,如下面的change就会消耗gas。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

solidity之view和pure函数的用法总结_weixin_43343144的博客-爱代码爱编程_pure solidity

pragma solidity >=0.4.0 <0.6.0; contract User { // 状态变量 uint public user_age = 12; // view修饰的条件(只读取状态,但不修改状态) // 本地运行,不消耗gas function get_ag

【易错点 学习笔记】Solidity语法constant/view/pure-爱代码爱编程

一 易错点Pure与View 在Solidity v4.17之前,只有constant,后来有人嫌constant这个词本身代表变量中的常量,不适合用来修饰函数,所以将constant拆成了view和pure。 1.view的作用和constant一模一样,可以读取状态变量但是不能改; pure则更为严格,pure修饰的函数不能改也不能读状态变量,否则

solidity 关键字constant/view/pure/payable的区别-爱代码爱编程

学习资源:https://learnblockchain.cn/docs/solidity                   https://remix.ethereum.org/                   https://github.com/OpenZeppelin/openzeppelin-contracts/ view 修饰的函数

【solidity智能合约基础】节约gas的利器--view和pure-爱代码爱编程

一、知识概览         view和pure的使用方法:view是只有输入没有输出,pure是单纯的输入和输出。调用这两种函数时,均不消耗燃料。而对内存的状态进行改变时,需要消耗燃料。因此我们称view和pure是节约gas的利器。         public是权限的标识符,如果不加说明,编译时默认是public,但是会警告甚至是错误(版本不同)。

solidity关键字 view pure constant-爱代码爱编程

// SPDX-License-Identifier: GPL-3.0 //pragma solidity ^0.8.0; pragma solidity ^0.8.0; // contract StateVariableContract{ // string name; // uint32 id; // function va

solidity数据类型 external internal view pure enum struct mapping-爱代码爱编程

1 基础运算 1.1 三目运算符 // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract threeEyeTest{ function tete(bool acc) public pure returns(string memory){ retur

Solidity constant view pure关键字的区别-爱代码爱编程

在Solidity中constant、view、pure三个函数修饰词的作用是告诉编译器,函数不改变/不读取状态变量,这样函数执行就可以不消耗gas了(是完全不消耗!) constant view pure区别和联系 在Solidity v4.17之前,只有constant,后来有人嫌constant这个词本身代表变量中的常量,不适合用来修饰函数,所以

Solidity语言详解——view和pure函数的使用区别-爱代码爱编程

Solidity 语言有两类和状态读写有关的函数类型,一类是 view 函数(也称为视图函数),另一类是 pure 函数(也称为纯函数)。他们的区别是 view 函数不修改状态,pure 函数即不修改状态也不读取状态。 view 函数 可以将函数声明为 view 函数类型,这种情况下函数保证不修改状态。 如果编译器的 EVM 目标是拜占庭或更新

12-solidity8.0-view和pure区别_yyjava的博客-爱代码爱编程

Solidity8.0 12-Solidity8.0-view和pure区别 文章目录 Solidity8.0前言一、Solidity8.0-view和pure区别1.view和pure区别总结 前言 视图和纯函数 可以声明 Getter 函数view或pure. View函数声明不会更改任何状态。 Pure函数声明不会更改或读取任何