Solidez - Mapeo

El mapeo es un tipo de referencia como matrices y estructuras. A continuación se muestra la sintaxis para declarar un tipo de mapeo.

mapping(_KeyType => _ValueType)

Dónde

  • _KeyType- puede ser cualquier tipo incorporado más bytes y cadenas. No se permite ningún tipo de referencia ni objetos complejos.

  • _ValueType - puede ser de cualquier tipo.

Consideraciones

  • El mapeo solo puede tener el tipo de storage y se utilizan generalmente para variables de estado.

  • El mapeo se puede marcar como público. La solidez crea automáticamente un captador para él.

Ejemplo

Pruebe el siguiente código para comprender cómo funciona el tipo de mapeo en 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));
   }
}

Ejecute el programa anterior siguiendo los pasos proporcionados en el capítulo Primera aplicación de Solidity.

Primer clic updateBalance Botón para establecer el valor como 10 y luego mirar en los registros que mostrarán la salida decodificada como -

Salida

{
   "0": "uint256: 10"
}