Día 13: Arrays en Solidity: Cómo Usarlos Eficazmente

Tabla de contenidos

Hemos llegado al día trece de esta fabulosa experiencia con la saga de #SolidityDe0a100 y hoy nos corresponde adentrarnos en el apasionante mundo de los arrays. Antes de continuar, quisiera proponerles algo. Varios seguidores de la saga me han sugerido que acompañe los temas con grabaciones de video donde se explique el contenido tratado. 

Un array es una estructura de datos ampliamente utilizada en la mayoría de los lenguajes de programación, incluido Solidity. Se trata de una matriz en la que se pueden almacenar múltiples elementos del mismo tipo de datos, y se accede a ellos mediante un número de índice. Las matrices son muy útiles para agrupar y gestionar conjuntos de datos relacionados.

Para crear un Array en Solidity, se declara la variable con el tipo de dato seguido de corchetes []. Por ejemplo:

Los Arrays pueden tener un tamaño fijo o dinámico. Los Arrays dinámicos pueden cambiar de tamaño durante la ejecución del contrato, mientras que los Arrays de tamaño fijo tienen un tamaño establecido que no puede cambiar.

Agregar y eliminar elementos en un Array:

 

Para agregar elementos a un Array dinámico, utilizamos la función push():

Para eliminar elementos de un Array dinámico, podemos usar la función pop() para eliminar el último elemento:

También podemos eliminar un elemento en un índice específico utilizando el operador delete:

Buscar en un Array:

 

Para buscar elementos en un Array, podemos utilizar bucles for para recorrer el Array y comparar los valores. Por ejemplo:

También podemos utilizar funciones integradas como indexOf() para encontrar el primer índice de un valor en el Array:

Operaciones de clasificación de Arrays:

 

Solidity no tiene funciones integradas para ordenar Arrays, por lo que podemos implementar algoritmos de clasificación personalizados. Por ejemplo, podemos utilizar el algoritmo de ordenamiento de burbuja para ordenar un Array de menor a mayor:

Uso de Arrays con otros tipos de datos:

 

Los Arrays pueden utilizarse con otros tipos de datos, como estructuras o como parámetros de funciones. Por ejemplo:

Límites y rendimiento de Arrays:

 

En Solidity, las matrices tienen un límite de tamaño debido a las limitaciones del espacio de almacenamiento y las operaciones de gas. El tamaño máximo de un Array es 2^256 – 1. Sin embargo, se debe tener cuidado al trabajar con Arrays grandes, ya que pueden afectar el rendimiento y el costo de las transacciones.

Es importante tener en cuenta el rendimiento al trabajar con Arrays, especialmente si el tamaño del Array puede aumentar con el tiempo. Es posible que debamos utilizar estructuras de datos alternativas o dividir los datos en múltiples Arrays si el rendimiento se ve afectado.

Pasando Arrays a funciones y contratos:

 

Los Arrays se pueden pasar como parámetros a funciones y contratos en Solidity. Cuando pasamos un Array a una función, se puede pasar como un Array de memoria o un Array de almacenamiento, dependiendo de cómo se declare la función. Por ejemplo:

Es importante tener en cuenta que pasar un Array de almacenamiento puede tener costos de gas adicionales si la función modifica el Array, ya que se deben realizar escrituras en la memoria del contrato.

Los Arrays son una herramienta poderosa para gestionar conjuntos de datos en Solidity. Pueden utilizarse para almacenar y organizar datos relacionados y realizar operaciones como agregar, eliminar y buscar elementos. Sin embargo, es importante considerar el rendimiento y los límites de tamaño al trabajar con Arrays en contratos inteligentes. Recuerda siempre compilar e implementar el contrato en una red de desarrollo de Ethereum para interactuar con él.

¡Te invito a que te unas a esta fascinante experiencia en el desarrollo de Smart Contracts en Ethereum!

Ver Video Completo

Más sobre Blockchain & Web3

You cannot copy content of this page

Scroll al inicio

Aplica para el proceso de admisión del programa master emprendimiento blockchain architecture & networks programming

¿Estas preparado para ver como tu carrera profesional se acelera más que nunca? Envíanos tus datos y agendamos tu entrevista. ¡Las plazas son muy limitadas!

Aplica para el proceso de admisión del programa MASTER INGENIERO BLOCKCHAIN FROM WEB2 TO WEB3

¿Estas preparado para ver como tu carrera profesional se acelera más que nunca? Envíanos tus datos y agendamos tu entrevista. ¡Las plazas son muy limitadas!

Próxima Promoción: Abril 2023