Solidez - Mapeamento
Mapeamento é um tipo de referência como matrizes e estruturas. A seguir está a sintaxe para declarar um tipo de mapeamento.
mapping(_KeyType => _ValueType)
Onde
_KeyType- pode ser qualquer tipo integrado mais bytes e string. Nenhum tipo de referência ou objetos complexos são permitidos.
_ValueType - pode ser de qualquer tipo.
Considerações
O mapeamento pode ter apenas o tipo de storage e geralmente são usados para variáveis de estado.
O mapeamento pode ser marcado como público. Solidity cria automaticamente getter para ele.
Exemplo
Experimente o código a seguir para entender como o tipo de mapeamento funciona no 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));
}
}
Execute o programa acima usando as etapas fornecidas no capítulo Aplicativo Solidity First .
Primeiro clique updateBalance Botão para definir o valor como 10, em seguida, olhe para os logs que mostrarão a saída decodificada como -
Resultado
{
"0": "uint256: 10"
}