1.常量和变量读取GAS消耗

pragma solidity ^0.8.7;
// 21420 gas
contract demo1{address public constant admin = 0x6BaB7a0e1696D654adEdf4266B563c7CD656E212;
}
//23553 gas
contract demo2{address public admin = 0x6BaB7a0e1696D654adEdf4266B563c7CD656E212;
}

常量比变量少消耗2133 Gas费

在以太坊中读取变量不需要消耗gas费,但是当使用写入合约时读取数据就会消耗对应的Gas费

在合约中根据实际需求 尽量多定义常量而不是变量

2.if-else和三元运算符

pragma solidity ^0.8.7;contract demo{//传入参数:1000 21820 gasfunction example_1(uint _x) external pure returns (uint) {if (_x <=100){return 1;}else{return 2;}}//传入参数:1000 21861 gasfunction example_2(uint _x) external pure returns (uint){return _x <=100 ? 1 : 2;}
}

三元运算符的Gas消耗比if-else要更多,大概多了40个gas

Solidity Gas消耗相关推荐

  1. c++ 数组引用_在 Solidity中使用值数组以降低 gas 消耗

    背景 我们Datona Labs在开发和测试Solidity数据访问合约(S-DAC:Smart-Data-Access-Contract)模板过程中,经常需要使用只有很小数值的小数组(数组元素个数少 ...

  2. Solidity优化 - 减少智能合约gas消耗

    1. 首选数据类型 尽量使用 256 位的变量,例如 uint256 和 bytes32!乍一看,这似乎有点违反直觉,但是当你更仔细地考虑以太坊虚拟机(EVM)的运行方式时,这完全有意义.每个存储插槽 ...

  3. Solidity如何通过代码减少gas消耗

    我们知道,在以太坊上的交易gas是有上限的,因此也是比较昂贵的,特别是针对一些复杂业务的处理,随着业务数据的增长,有可能会导致gas超高,甚至业务无法进行操作. 之前专门写过文章来描述如何减少gas的 ...

  4. 从 Demo 中学习 Solidity

    从 Demo 中学习 Solidity [注解译文] 前 (全文参考) Solidity官方文档 以太坊白皮书_ZH 以太坊白皮书_EN 发现网上的资料太过琐碎, 惊奇的发现官方有详细的教程, 和例子 ...

  5. Solidity 基础(一)

    Solidity 官网 github Solidity是一种静态类型的花括号(curly-braces)编程语言,旨在开发运行在以太坊(Ethereum)上的智能合约. Solidity正在迅速发展 ...

  6. Solidity语言编辑器REMIX指导大全

    文章摘要 本文目标:本文翻译和实践Solidity语言编辑器REMIX官网帮助文档,但并不拘泥于逐字翻译,而时根据实践用中文语言讲透编辑器相关功能. 前置条件:了解以太坊ETH和Solidity语言. ...

  7. solidity开篇:区块链基础

    solidity开篇:区块链基础 1.事务 2.交易 3.地址 4.区块 5.存储/内存/栈 2️⃣Hello World 1.例子代码 2.Hello World 例子分析 3️⃣ 合约代码中的三种 ...

  8. Basic of Solidity (solidity基础)

    目录 1.first contract ·申明编译器版本 ·定义合约 ·合约构造函数 ·定义变量 ·定义函数 2.data type ·值类型(Value Types) ·引用类型(Reference ...

  9. Solidity语法大致总结

    目录 一.数据类型 1.1.值类型 1.1.1.布尔 1.1.2.整数 1.1.3.定长浮点型 1.1.4.地址类型 1.1.5.合约类型 1.1.6.枚举类型 1.1.7.定长字节数组 1.1.8. ...

最新文章

  1. C语言面向过程与C++面向对象
  2. 使用JQuery Validate插件的报Cannot read property 'settings' of undefined错误的解决方法
  3. MFC DLL对话框调用
  4. extjs插件开发上传下载文件简单案例
  5. 清华硕士一针见血:这些才是机器学习必备的数学基础
  6. 用批处理替换文件中的内容
  7. validated 验证数组_SpringBoot整合表单验证注解@Validated,以及分组验证
  8. jFinal 2.2入门学习之一:搭建框架输出helloword
  9. GB/T14710|聊一聊医用电气设备的环境试验
  10. 1、【易混淆概念集】-前三章 1 工作绩效数据、信息、报告
  11. 普通人创业,不开实体店或者网上店铺,你能干啥?
  12. InnoDB: MySQL and InnoDB data dictionaries are out of sync + InnoDB: AUTOINC next value generation
  13. L1-030 一帮一(分数 15)
  14. biti_rainy的博客
  15. python中表示分支结构_下面Python关键字中,不用于表示分支结构的是()。
  16. 【Spark NLP】第 3 章:Apache Spark 上的 NLP
  17. Docker换源与镜像拉取
  18. VE和C-5A巨型飞机
  19. 回首过去,展望未来 (二)
  20. 英语语法总结11(并列句、省略)

热门文章

  1. python多线程、多进程
  2. 二分查找算法递归和非递归实现
  3. int计算机考试,全国计算机等级考试是什么程序执行?
  4. DPDK mbuf引用计数出错的分析
  5. 拿到域管权限后的域内网络拓扑
  6. uart中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义
  7. Java核心技术 卷1-总结-16
  8. 数据预处理 常见的几种方法
  9. 明白这六个职场生存法则,老板会对你刮目相看
  10. 使用GAN的图像超分辨率功能彻底消灭模糊图