在Solidity中设置数组的长度属性

Setting the length property of array in Solidity

设置数组的 length 属性 有什么作用。在大多数其他语言中,length 是一个 return arra 长度的函数,但在此代码中,length 属性 被设置。

struct ledger_t {
  uint8 WinningNum1;
  uint8 WinningNum2;
  uint8 WinningNum3;
  uint8 WinningNum4;
  bytes32 ClosingHash;
  bytes32 OpeningHash;
  mapping(address=>bet_t) bets;
  uint Guess4OutOf4;
  uint Guess3OutOf4;
  uint Guess2OutOf4;
  uint Guess1OutOf4;
  uint PriceOfTicket;
  uint ExpirationTime; //for eventual refunds only, ~2 weeks after draw announced
}
ledger_t[] public ledger;

//constructor
function TheEthereumLottery() {
  owner = msg.sender;
  ledger.length = 0;
  IndexOfCurrentDraw = 0;
  referral_fee = 90;
}

Solidity 数组的 length 属性 可用于获取和设置该数组的长度。要获得长度,只需从 属性:

读取

l = ar.length

要为数组设置新长度,只需分配新的长度值即可:

ar.length = 5

这与大多数实现特定函数以获取和设置数组长度的语言不同。