paint-brush
Cómo crear un mapeo en Soliditypor@kamilpolak
11,664 lecturas
11,664 lecturas

Cómo crear un mapeo en Solidity

por Kamil Polak2m2021/05/23
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

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. La función de constructor le permite agregar una clave y un valor utilizando la misma sintaxis que la función de matriz. En el siguiente artículo, implementaremos nuestro contrato inteligente simple en Remix para ver cómo funciona mediante el mapeo. 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.

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Cómo crear un mapeo en Solidity
Kamil Polak HackerNoon profile picture

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.

¿Qué es el mapeo?

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

comida para llevar

  • el mapeo no tiene una longitud,
  • se permite el mapeo de variables de estado,
  • el mapeo no puede devolver parámetros de funciones de contrato que son públicamente visibles,
  • no puede iterar a través de la asignación.

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