浅谈Solidity: 19 memory, calldata和

2023-03-15  本文已影响0人  温驭臣

calldata:是一个不可修改的、非持久化的区域,函数参数存储在内存。是一个常数,只能用于函数声明参数,是不可变的(不能被覆盖和更改),调用数据避免了数据拷贝,并确保数据不被修改,是临时的(该值在事务完成后会销毁),必须用于external函数的动态参数,外部函数的参数(不包括返回参数)被强制指定为calldata,是最便宜的存储位置gas费会比较低。

memory:是函数里的参数和临时变量,存储在内存中,不上链。

storage:合约里的状态变量默认都是storage,存储在链上。

我是温驭臣,一个Solidity的开发学习者,以上是我的简单总结,如果有缺陷,希望在评论区看到您的补充。

上一篇 下一篇

猜你喜欢

热点阅读