Solidity学习笔记:数据存储位置 2024/06/02 数据存储位置 Solidity 中有三种主要的数据存储位置: storage:默认情况下,变量存储在区块链的中,数据会永久保存在区块链上。 memory:存储在内存中的数据在函数调用时是临时的。函数执行完毕后,这些数据会被销毁。可用于函数声明参数以及函数逻辑内 calldata:和Memory类似,但值是无法修改的。 下面是一个例子: // SPDX-License-Identifier: MITpragma solidity ^0.8.0; contract TestContract { // x 的数据存储位置是 storage。这是唯一可以省略数据位置的地方。 uint256 public x; function memoryTest(string memory _exampleString) public pure returns (string memory) { // 可以修改memory的变量 _exampleString = "example"; return _exampleString; } function calldataTest(string calldata _exampleString) public pure returns (string memory) { // 不可以修改 return _exampleString; }}