为什么solidity中视图函数中会提到memory关键字
Why memory keyword is mentioned in view function in solidity
function getAllWaves() public view returns (Wave[] memory) {
return waves;
}
我正在浏览 _buildspace 教程并找到了这段代码。我之前读过 memeroy 关键字在 solidity 中用于指定变量应存储在 memeroy(而不是状态)中,以便我们可以在函数调用后销毁它。但是为什么在此视图函数的 return 部分中提到了内存,因为它只是 return 一个值。
我是 solidity 的新手,所以任何与此相关的文章也会有所帮助。
谢谢
所有引用类型变量(包括数组)都需要指定 data location。
EVM 无法 return 直接从存储,因为 storage
位置修饰符就像一个指针,return 只是一个指针而不是指针是没有用的实际值。
所以它将 waves
数组的值从存储加载到内存,然后 return 从内存中加载它。
function getAllWaves() public view returns (Wave[] memory) {
return waves;
}
我正在浏览 _buildspace 教程并找到了这段代码。我之前读过 memeroy 关键字在 solidity 中用于指定变量应存储在 memeroy(而不是状态)中,以便我们可以在函数调用后销毁它。但是为什么在此视图函数的 return 部分中提到了内存,因为它只是 return 一个值。
我是 solidity 的新手,所以任何与此相关的文章也会有所帮助。 谢谢
所有引用类型变量(包括数组)都需要指定 data location。
EVM 无法 return 直接从存储,因为 storage
位置修饰符就像一个指针,return 只是一个指针而不是指针是没有用的实际值。
所以它将 waves
数组的值从存储加载到内存,然后 return 从内存中加载它。