問題一覧に戻る
中級データ型
問題36: ネストしたマッピング

Solidityのネストしたマッピングを学習します - 複雑なデータ構造のためのマッピング内のマッピングです。ネストしたマッピングは、アドレスから提案IDから投票へのマッピングのような多次元のキー値ストレージを可能にします。投票システム、権限マトリックス、多レベルのデータ関係の実装に不可欠です。アクセスはチェーンされた括弧を使用:mapping[key1][key2]。ネストの深さに制限はありませんが、深いネストはガスコストを増加させます。ネストしたマッピングの理解はDeFiおよびガバナンスコントラクトの洗練されたデータモデル構築に重要です。

pragma solidity ^0.8.0;

contract NestedMapping {
// ネストしたマッピングの宣言
mapping(address => mapping(uint256 => )) public votes;

// 投票を記録
function vote(uint256 proposalId) public {
votes[][proposalId] = true;
}

// 投票状態を確認
function hasVoted(address user, uint256 proposalId)
public view returns (bool) {
return votes[][];
}
}