問題一覧に戻る
初級基本構文
問題26: delete演算子
Solidityのdelete演算子を学習します。deleteは変数をデフォルトの初期値にリセットします - undefinedやnullではありません。基本型では:数値は0、boolはfalse、アドレスは0x0になります。配列では、deleteは要素を削除しますが配列の長さは変わらず、ギャップを残します。mappingでは、deleteは特定のキーをデフォルト値にリセットします。deleteはストレージのクリアにガス効率的で、適切な状態管理とクリーンアップ操作に不可欠です。
pragma solidity ^0.8.0;
contract DeleteOperator {
uint256 public number = 100;
uint256[] public arr = [1, 2, 3];
mapping(address => uint256) public balances;
// 数値を初期値にリセット
function resetNumber() public {
number;
}
// 配列要素を削除(0にリセット)
function deleteElement(uint256 index) public {
arr[index];
}
// マッピング値をリセット
function resetBalance(address user) public {
balances[user];
}
}