Cover photo

solidity-12-memory-storage

memory

memory关键字用来声明一个存储在EVM临时内存区中的变量。使用memory声明的变量不会存储在区块链上,在函数调用结束后不可访问。

定义一个memory变量

pragma solidity ^0.8.0;

contract Lesson7{
    function myFunction() public  pure{
        uint256 myMemoryVariable;
        myMemoryVariable=0;
    }
}

在函数中使用memory变量

     function setData2(uint256 value) public pure{
        uint256 myMemoryVariable;
        myMemoryVariable = value;
    }

storage

storage关键字用于声明一个村粗在EVM持久存储区域中的变量。这些变量在合约部署后会持久化在区块链上,可以在之后的效用中读取和修改。

定义一个storage变量

pragma solidity ^0.8.0;

contract Lesson7{
    uint256 public myStorageVariable;

    constructor() {
        myStorageVariable=0;
    }

}

在函数中使用storage变量

     function setData(uint256 value) public {
        myStorageVariable = value;
    }