我正在尝试删除 Solidity 数组中的某个项目。
我正在探索一些文章。
https://ethereum.stackexchange.com/questions/1527/how-to-delete-an-element-at-a-certain-index-in-an-array https://ethereum.stackexchange.com/questions/1527/how-to-delete-an-element-at-a-certain-index-in-an-array
当然,我不需要该项目的空值。我需要完全删除该项目。
uint[] payees = [1, 2, 3, 4, 5];
delete payees[0]
// result - I don't need this result
[0, 2, 3, 4, 5]
//I need [2, 3, 4, 5]
所以我就使用了这个功能。
function removePayee(
uint256 index
) internal {
if (index >= payees.length) return;
for (uint i = index; i<payees.length-1; i++){
payees[i] = payees[i+1];
}
delete payees[payees.length-1];
payees.length--;
}
发生以下错误。
Member "length" is read-only and cannot be used to resize arrays.