Solidity

如何檢索結構數組(bidarray)的長度?

  • September 13, 2022
struct BidInfo {
       uint256 BidId;
       address payable bidder;
       uint256 bidAmount;
   }

   BidInfo[] public _bidInfo;

   mapping(uint256 => BidInfo) bidArray;

到目前為止,我正在嘗試檢索bidarray的長度

bidArray[address].length

因此,正如我們在評論中所說,您基本上想要 BidArray 中的映射數量。不幸的是,你不能在 Solidity 中做到這一點。Solidity 中的映射是不可迭代的,也沒有長度。

為了讓您跟踪這一點,您可以手動聲明一個狀態變數,並在您對映射進行推送/刪除操作時更新它。

uint256 mapLen;
// addition to the map then
mapLen++;
// deletion to the map then
mapLen--;

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