堅牢性-マッピング

マッピングは、配列および構造体としての参照型です。以下は、マッピングタイプを宣言するための構文です。

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));
   }
}

Solidity First Applicationの章に記載されている手順を使用して、上記のプログラムを実行します。

ファーストクリック updateBalance 値を10に設定するボタンをクリックしてから、デコードされた出力を-として表示するログを調べます。

出力

{
   "0": "uint256: 10"
}