Arrays

無法將所有者的地址推送到函式外部的數組中

  • September 28, 2020

我對 Solidity 還很陌生,我想更好地理解 Push 功能。我正在使用solidity 0.5.12版我想將所有者地址推送到數組中,如下所示

       address Owner;
       constructor() public
       {   
            Owner = msg.sender;       
       }
       address[] playersAddressList;
       playersAddressList.push(Owner);

Remix 給我一個錯誤,說明 browser/Lottery.sol:53:32: ParserError: Expected identifier but got ‘(’ playerAddressList.push(Owner); ^

但是,當我嘗試將 Owner 推入以下函式內的數組時,沒有錯誤

 function addPlayer(string memory a, uint b) public payable
   {
       playersAddressList.push(Owner);  

       address creator = msg.sender;
       playersAddressList.push(creator);
                   
       balance = balance + msg.value;
       require (msg.value >= 1 ether);
       
       person memory newPerson;

       newPerson.name = a;
       newPerson.age = b;

       players[creator] = newPerson;
       
   }

我想了解為什麼我可以將所有者的地址推送到函式內部而不是外部的數組?

謝謝 Rwiju

除了聲明狀態變數並將它們初始化為值之外,您不能在函式之外執行程式碼。

事實上,即使是這initializing them to values部分實際上也被編譯器“默默地移動”到了建構子中。

引用自:https://ethereum.stackexchange.com/questions/87833