Published: 24 Aug 2021 › Updated: 24 Aug 2021

solidity 0.8版本更新 / 学习智能合约#46
solidity版本更新的速度很快啊,半年没玩,就有点跟不上进度了!查看了下新的版本,现在已到0.8.7,也有不少的更新:集成的SafeMath和新的错误处理。
SafeMath
solidity在0.8版本以前需要引入SafeMath库以避免计算时溢出,但在0.8版本以后自身已经集成了,则无需再引入。下面简单地测试下,
//SafeMath是从左到右开始计算的: + add - sub * mul / div
uint a = 2;
uint b = 5;
uint c = 23;
(a+b)*c -> a.add(b).mul(c)
//0.8版本以后
uint x = 0;
x--; //出错,会回滚
unchecked { ... }不检查溢出,
uint x = 0;
unchecked { x--; } //返回最大值 type(uint).max
uint a = 2;
uint b = 5;
uint c = 23;
return a + b * c; ->117
return (a + b) * c; ->161
return a * b + c; ->33
return b / a + c; ->25
return c / (a + b); ->3
自身集成了SafeMath终归是件好事,使用起来更适合小学生水平。其它的一些特点注意下倒也没什么太大变化。
Leave solidity 0.8版本更新 / 学习智能合约#46 to:
Read more #smartcontract posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.