Solidität - Kartierung

Die Zuordnung ist ein Referenztyp für Arrays und Strukturen. Es folgt die Syntax zum Deklarieren eines Zuordnungstyps.

mapping(_KeyType => _ValueType)

Wo

  • _KeyType- kann ein beliebiger integrierter Typ plus Bytes und Zeichenfolge sein. Es sind keine Referenztypen oder komplexen Objekte zulässig.

  • _ValueType - kann jeder Typ sein.

Überlegungen

  • Mapping kann nur den Typ haben storage und werden im Allgemeinen für Zustandsvariablen verwendet.

  • Die Zuordnung kann als öffentlich markiert werden. Solidität schafft automatisch Getter dafür.

Beispiel

Versuchen Sie den folgenden Code, um zu verstehen, wie der Zuordnungstyp in Solidity funktioniert.

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

Führen Sie das obige Programm mit den im Kapitel Solidity First Application beschriebenen Schritten aus .

Erster Klick updateBalance Klicken Sie auf die Schaltfläche, um den Wert auf 10 festzulegen, und schauen Sie dann in die Protokolle, in denen die dekodierte Ausgabe als - angezeigt wird.

Ausgabe

{
   "0": "uint256: 10"
}