Solidityでマッピングの要素を削除する方法について解説します。
構文
Solidityでマッピングの要素を削除するには、delete演算子を使用します。
delete マッピング変数[キー];
サンプルコード
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract Test {
mapping (address => uint) public balances;
function store(uint256 num) public {
balances[msg.sender] = num;
}
function deleteElement(address _address) public {
// マッピング要素を削除
delete balances[_address];
}
function retrieve() public view returns (uint256){
return balances[msg.sender];
}
}
delete演算子で要素を削除しても0が格納されるだけとなります。要素そのものが削除される訳ではなく、要素数自体には変化がないことに注意しましょう。