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