首页 > 其他分享 >solidity数据存储位置以及存储报错

solidity数据存储位置以及存储报错

时间:2022-11-05 17:55:22浏览次数:66  
标签:存储 string solidity storage 默认 报错 memory

solidity 数据存储位置

solidity文档在0.5.0之后发生大变动,复杂的数据类型必须给出明确的数据存储位置:memorystoragecalldate

三个存储位置的区别

  1. storage 存储
  • 永久存储,写在区块链上,需要花费gas,使用的存储空间越大花费的gas越多。
  1. memory 内存
  • 仅在函数执行期间存储,函数执行结束后删除数据,花费gas少于storage。
  1. calldate 调用数据
  • 外部函数的参数需要calldata,但也可用于其他变量。是一个不可修改的,非持久性的区域,用于存储函数参数。

默认存储位置

  • 状态变量默认storage
  • 内部函数参数默认memory
  • 外部函数参数默认calldata

报错

string public s;
    
    function setStrings(string _s) public {
        s = _s;
    }

  • string 类型在作为参数必须加memory,因为string默认是storage

标签:存储,string,solidity,storage,默认,报错,memory
From: https://www.cnblogs.com/xiao-xiaoyang/p/16860729.html

相关文章