浅谈Solidity: 19 memory, calldata和storage

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

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

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容