如何在solidity中清除和重置数组的映射

问题描述 投票:0回答:2

下面是我如何将记录写入映射数组。如何创建一个清除|删除所有函数来清除所有记录或将所有记录重置回默认为空?

    address payable[] public players;
    mapping(address => uint256[])  playerTicket;
        
        
    function playersRecord() public view returns(uint256[] memory){
                return playerTicket[msg.sender];
    }

我设法使用以下功能来逐一清除,但不知道如何清除所有

function remove(address _addr) public {
    // Reset the value to the default value.
    delete playerTicket[_addr];
}
ethereum solidity
2个回答
2
投票

如果不指定键,则无法清除所有映射值。 因此,Solidity 不知道映射的键。由于键是任意的并且不是一起存储的,因此删除值的唯一方法是知道每个存储值的键。
您的

remove()
函数正确地清除了特定映射键的值。

更多信息这里


0
投票

在最新版本中使用删除关键字。 工作示例 - 请参阅此代码

© www.soinside.com 2019 - 2024. All rights reserved.