Solidità - Mappatura

Il mapping è un tipo di riferimento come array e strutture. Di seguito è riportata la sintassi per dichiarare un tipo di mappatura.

mapping(_KeyType => _ValueType)

Dove

  • _KeyType- può essere qualsiasi tipo predefinito più byte e stringa. Nessun tipo di riferimento o oggetti complessi sono consentiti.

  • _ValueType - può essere di qualsiasi tipo.

Considerazioni

  • La mappatura può avere solo il tipo di storage e sono generalmente utilizzati per le variabili di stato.

  • La mappatura può essere contrassegnata come pubblica. La solidità crea automaticamente getter per questo.

Esempio

Prova il codice seguente per capire come funziona il tipo di mappatura in 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));
   }
}

Eseguire il programma precedente utilizzando i passaggi forniti nel capitolo Solidity First Application .

Primo clic updateBalance Pulsante per impostare il valore su 10, quindi esaminare i log che mostreranno l'output decodificato come -

Produzione

{
   "0": "uint256: 10"
}