En Solidity, cuando desee almacenar una colección de datos, puede usar una matriz o un mapeo. En este artículo, le mostraré cómo crear una asignación y cómo agregar claves y valores mediante la función constructora.
Siguiendo la documentación de Solidity " Puede pensar en las asignaciones como tablas hash, que se inicializan virtualmente de modo que existen todas las claves posibles y se asignan a un valor cuya representación de bytes es todo ceros, el valor predeterminado de un tipo "
En otras palabras, el mapeo en Solidity es como un diccionario en Python o un mapa en JavaScript. Python le permite iterar a través de un diccionario y JavaScript le permite iterar a través del mapa. Sin embargo, en Solidity, no puede iterar a través del mapeo .
El mapeo usa la siguiente sintaxis
mapping (_KeyType => _ValueType) public mappingName
También puede usar el mapeo anidado de la siguiente manera
mapping( _KeyType => mapping( _KeyType => _ValueType)) public mappingName;
Déjame explicarte cómo funciona el mapeo. La siguiente tabla presenta los números de habitación con los nombres de los huéspedes del hotel correspondientes. Puede pensar en esta tabla como una relación de par clave-valor donde puede encontrar un conjunto único de "claves" que corresponden a un valor único.
Entonces, si solicita el valor de "102", recibirá "Sara".
Veamos cómo crear un mapeo:
pragma solidity ^ 0.8 .4 ; contract MyContract { mapping( uint => string ) public names; }
Primero, debe declarar el mapeo con el
mapping
palabra clave y, a continuación, especifique el tipo de datos para la clave y el valor. En este caso, cada clave en el mapeo será una uint
, y cada valor correspondiente será un string
.Antes de implementar nuestro contrato inteligente para ver cómo funciona el mapeo, agregamos algunos datos. Para ello usaré el
contructor
función. constructor () public { names[101] = "Jon"; names[102] = "Sara"; names[103] = "Paul"; } }
Ahora podemos implementar nuestro contrato inteligente simple en Remix para ver cómo funciona. Hagamos clic en “Implementar”.
Una vez que se implementa el contrato, puede ver el mapeo en acción. Para hacerlo, debe proporcionar una clave y hacer clic en "llamar".
En mi ejemplo, pedí el valor de la clave "101" y recibí "Jon".
Espero que este breve tutorial lo ayude a comprender los conceptos básicos del mapeo en Solidity.
Referencias:
https://docs.soliditylang.org/en/v0.8.4/types.html#mapping-types