我创建了一个地址类型为的动态数组变量例如,
address payable[] public participant;
下面哪一种写法是正确的,为什么,
uint payable[] public participant;
或
uint[] payable public participant;
enter code here
有address
及其扩展address payable
,它允许您使用本机transfer()
方法将ETH发送到此地址。
由于该类型称为address payable
,您可以通过在类型名称后附加[]
表达式来创建该类型的数组。
没有payable
扩展到uint
。如果您的目标是定义要发送的金额,则可以将其存储在常规uint
中。
pragma solidity ^0.8;
contract MyContract {
address payable[] public participants;
function foo() public {
uint amount = 1; // 1 wei
for (uint i = 0; i < participants.length; i++) {
participants[i].transfer(amount);
}
}
}