【Solidity】マッピングの要素を削除するには?

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が格納されるだけとなります。要素そのものが削除される訳ではなく、要素数自体には変化がないことに注意しましょう。

タイトルとURLをコピーしました