如何清除和重置数组的映射
How to clear and reset Mapping of Array in solidity
下面是我如何将记录写入映射数组。我如何创建一个 clear|removeall 函数来清除或重置所有记录为空的默认值?
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];
}
如果不指定密钥,您将无法清除所有映射值。
因此,Solidity 不知道映射的键。由于键是任意的并且不一起存储,因此删除值的唯一方法是知道每个存储值的键。
您的 remove()
函数可以正确清除特定映射键的值。
更多信息here。
下面是我如何将记录写入映射数组。我如何创建一个 clear|removeall 函数来清除或重置所有记录为空的默认值?
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];
}
如果不指定密钥,您将无法清除所有映射值。
因此,Solidity 不知道映射的键。由于键是任意的并且不一起存储,因此删除值的唯一方法是知道每个存储值的键。
您的 remove()
函数可以正确清除特定映射键的值。
更多信息here。