solidity开发以太坊智能合约时memory和storage有什么不同

本篇内容主要讲解“solidity开发以太坊智能合约时memory和storage有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“solidity开发以太坊智能合约时memory和storage有什么不同”吧!

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站制作、沂水网络推广、重庆小程序开发、沂水网络营销、沂水企业策划、沂水品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供沂水建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

在使用solidity开发以太坊智能合约时,可以为变量声明memory和storage关键字。那么,它们有什么不同之处?如果在声明合约变量时没有使用memory关键字,Solidity会尝试在storage中存储这个变量。

storage是什么

根据Solidity首席工程师Chriseth的说法:“你可以把storage想像成一个大数组,它有自己的结构,这个结构是由你的合约中的状态变量所决定的,因此在运行时不能改变”

这就是说,storage的结构是在合约部署创建时,根据你的合约中状态变量的声明,就固定下来了,并且不能在将来的合约方法调用中改变这个结构。但是,storage中的内容是可以通过交易来改变的。这些交易调用因此将修改合约的状态,这也是为什么合约中的变量被称为状态变量的原因。因此在合约层面声明的一个uint8类型的storage变量, 它的值可以修改为任何0-255之间的有效uint8值,但是该变量在storage结构中的位置始终不会变化。

函数中的变量

如果你在合约函数中声明变量时没有使用memory关键字,那么solidity将会尝试使用storage结构,目前来讲,这样做可以通过编译,但是可能导致不可预期的结果。memory关键字告诉solidity应当在该函数运行时为变量创建一块空间,使其大小和结构满足函数运行的需要。

在合约层面你不能为变量应用memory关键字。

到此,相信大家对“solidity开发以太坊智能合约时memory和storage有什么不同”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网页标题:solidity开发以太坊智能合约时memory和storage有什么不同
文章分享:https://www.cdcxhl.com/article44/jhcshe.html

成都网站建设公司_创新互联,为您提供网站内链移动网站建设网站营销响应式网站虚拟主机微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设