深度学习
截至目前,我们学过的所有编程语言可能都把变量存储在内存中。但是在Solidity中,根据情况的不同,变量可能不存储在内存和文件系统中。
根据情况的不同,数据总有一个默认位置。但是对于复杂数据类型,例如字符串(string)、数组(array)和结 构类型(struct),可以用向类型添加storage或者memory进行重写。函数参数(包括返回参数)默认用memory,本地变量默认用 storage。显然,对于状态变量来说,位置强制用storage。
数据位置很重要,因为它们会改变分配的行为:
·storage变量和memory变量之间的分配总是创建一个独立的备份。但如果分配是从memory存储的一种复杂类型到另一种复杂类型,则不创建备份。
·到一个状态变量的分配(即使是来自其他状态变量)总是创建一个独立的备份。
·不能把memory中存储的复杂类型分配给本地存储变量。
·在分配状态变量给本地存储变量的情况下,本地存储变量指向状态变量,也就是说,本地存储变量变为指针。
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=581