Solidity-mappings
提供:Dev Guides
堅牢性-マッピング
マッピングは、配列および構造体としての参照型です。 以下は、マッピングタイプを宣言する構文です。
mapping(_KeyType => _ValueType)
どこで
- _KeyType -任意の組み込み型に加えて、バイトと文字列を指定できます。 参照型または複合オブジェクトは許可されていません。
- _ValueType -任意のタイプを指定できます。
検討事項
- マッピングのタイプは storage のみで、通常は状態変数に使用されます。
- マッピングはパブリックとしてマークできます。 Solidityは、そのためのゲッターを自動的に作成します。
例
Solidityでマッピングタイプがどのように機能するかを理解するには、次のコードを試してください。
pragma solidity ^0.5.0;
contract LedgerBalance {
mapping(address => uint) public balances;
function updateBalance(uint newBalance) public {
balances[msg.sender] = newBalance;
}
}
contract Updater {
function updateBalance() public returns (uint) {
LedgerBalance ledgerBalance = new LedgerBalance();
ledgerBalance.updateBalance(10);
return ledgerBalance.balances(address(this));
}
}
link:/solidity/solidity_first_application [Solidity First Application]の章に記載されている手順を使用して、上記のプログラムを実行します。
最初に updateBalance ボタンをクリックして値を10に設定してから、ログを調べて、デコードされた出力を次のように表示します-
出力
{
"0": "uint256: 10"
}