智能合约实战 solidity 语法学习 07 [ memory storage ]
Posted www_vane
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能合约实战 solidity 语法学习 07 [ memory storage ]相关的知识,希望对你有一定的参考价值。
内存型(memory)
存放在内存中
被memory修饰的变量是直接拷⻉,值传递
存储型 (storage)
被storage修饰的变量是引⽤传递,修改⼀个,另外的同样被修改
引⽤类型的变量才可以显示的声明为 storage
局部变量,默认是storage类型
状态变量,默认是storage变量(合约开头定义的视为状态变量)
contract HelloMemoryStorage {
string public str = "abcd";
uint public num = 100;
function test1() public {
test2(str);
}
// 函数入参,默认是memory,也可以修改为storage
function test2(string memory teststr) public {
num = 200;
bytes(teststr)[0] = "f";
}
function test3() public {
test4(str);
}
// 尝试将入参改为storage
function test4(string storage teststr) private {
num = 300;
bytes(teststr)[0] = "f";
}
// 局部变量默认是storage类型
function test5() public {
string storage tmp = str;
nu
以上是关于智能合约实战 solidity 语法学习 07 [ memory storage ]的主要内容,如果未能解决你的问题,请参考以下文章
智能合约实战 solidity 语法学习 10 [ BNB合约解读 ] 附代码
智能合约实战 solidity 语法学习 10 [ BNB合约解读 ] 附代码
智能合约实战 solidity 语法学习 10 [ BNB合约解读 ] 附代码
智能合约实战 solidity 语法学习 03 [ 数据类型 ]