Solidity
array.length– 是如何工作的?
我很難理解人們為什麼打電話
array.length--
刪除數組中的元素後(如本答案和許多其他人所示)。為什麼需要這樣做?何時評估數組的長度?或者也許我遺漏了一些明顯的東西,
array.length--
實際上是做什麼的?
您必須使用
array.length--
才能準確地保持數組的長度。混淆來自這樣一個事實,即
delete
在 Solidity 中實際上並沒有從數組中刪除一個元素,而只是將元素設置為它的預設值(例如,0
對於 auint256
)。以以下程式碼為例:
uint256[] public testArray = [1,2,3,4,5]; // testArray = [1,2,3,4,5] // testArray.length = 5 delete testArray[4]; // testArray = [1,2,3,4,0] // testArray.length = 5 testArray.length-- // testArray = [1,2,3,4] // testArray.length = 4