Smart-Contract-Wallets

是否可以在不循環遍歷數組的情況下重置數組?

  • November 26, 2022

我最近開始了 FreeCodeCamp 上的 Solidity/JS 課程。

在課程中,我們將一個地址數組重置為 0 / nul,表示如下:

   for (uint256 funderIndex = 0; funderIndex < funders.length; funderIndex++){
       address funder = funders[funderIndex];
       addressOfFunders[funder] = 0;
   }
   funders = new address[](0);

我想知道是否可以僅使用“資助者 = 新地址”來重置陣列?如果不是,為什麼循環很重要?

謝謝你的幫助 ;)

您可以只執行最後一行(即funders = new address[](0);)來重置 all 數組。

但對我來說,for 循環主要是為了重置名為“addressOfFunders”的映射,我只是猜測,這是一個從地址到 uint 的映射。

該行address funder = funders[funderIndex];只是為了找到每個提供資金的地址,下一行將addressOfFunders[funder] = 0;映射重置為 0。

一旦所有的地址都被檢索並且所有的映射值都被重置為 0,然後並且只有這樣你的程式碼才會通過做funders = new address[](0);

我假設這addressOfFunders是一個映射(地址=> uint)是否正確?

希望這有幫助!

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