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"
}