当前位置:首页 » 区块链精品文章 » 正文

3.3 数据位置

2052 人参与  2018年09月17日 18:13  分类 : 区块链精品文章  评论

截至目前,我们学过的所有编程语言可能都把变量存储在内存中。但是在Solidity中,根据情况的不同,变量可能不存储在内存和文件系统中。

根据情况的不同,数据总有一个默认位置。但是对于复杂数据类型,例如字符串(string)、数组(array)和结 构类型(struct),可以用向类型添加storage或者memory进行重写。函数参数(包括返回参数)默认用memory,本地变量默认用 storage。显然,对于状态变量来说,位置强制用storage。

数据位置很重要,因为它们会改变分配的行为:

·storage变量和memory变量之间的分配总是创建一个独立的备份。但如果分配是从memory存储的一种复杂类型到另一种复杂类型,则不创建备份。

·到一个状态变量的分配(即使是来自其他状态变量)总是创建一个独立的备份。

·不能把memory中存储的复杂类型分配给本地存储变量。

·在分配状态变量给本地存储变量的情况下,本地存储变量指向状态变量,也就是说,本地存储变量变为指针。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=581

区块链是什么  

微信号:qq444848023    QQ号:444848023

加入【我是码农】QQ群:864689844(加群验证:我是码农)

<< 上一篇 下一篇 >>

网站分类

标签列表

最近发表

全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试

本站资源大部分来自互联网,版权归原作者所有!