解释这个 solidity 声明
Explain this solidity statement
我是 solidity 的新手,我遇到了以下声明:
address[] memory path = new address[](2);
有人请帮我分解一下。具体来说,new address[](2)
是做什么的?
TIA
它初始化名为 path
的新 dynamic-length 数组变量
- 项的类型为
address
- 数组存储在
memory
、non-persistent 数据位置,只能在交易期间访问
表达式 new address[](2)
的 right-side 用 2 个空项初始化数组。
在 Solidity 中,dynamic-length 和 fixed-length 数组之间存在差异。所以如果你的函数需要 return array[]
(dynamic-length),编译器不允许你 return array[2]
(fixed-length) .
由于内存的结构,无法调整内存中数组的大小。 (但是您可以调整存储阵列的大小。)因此,当您需要 return 一个 dynamic-length 阵列时,可以使用这种方法。您需要首先使用预定义数量的空值在内存中对其进行初始化,然后重写这些值。有关代码示例,请参阅 this post。
我是 solidity 的新手,我遇到了以下声明:
address[] memory path = new address[](2);
有人请帮我分解一下。具体来说,new address[](2)
是做什么的?
TIA
它初始化名为 path
- 项的类型为
address
- 数组存储在
memory
、non-persistent 数据位置,只能在交易期间访问
表达式 new address[](2)
的 right-side 用 2 个空项初始化数组。
在 Solidity 中,dynamic-length 和 fixed-length 数组之间存在差异。所以如果你的函数需要 return array[]
(dynamic-length),编译器不允许你 return array[2]
(fixed-length) .
由于内存的结构,无法调整内存中数组的大小。 (但是您可以调整存储阵列的大小。)因此,当您需要 return 一个 dynamic-length 阵列时,可以使用这种方法。您需要首先使用预定义数量的空值在内存中对其进行初始化,然后重写这些值。有关代码示例,请参阅 this post。