Un enum type o tipo enumerado es un grupo de datos especiales a los que se les puede asignar una variable que corresponda a un conjunto de constantes predefinidas. Son implementados en muchos lenguajes de programación fuertemente tipados y Solidity los utiliza para la creación de tipos personalizados de datos y definir los valores que estos puedan tener.
Los enumerados emplean una lista de los valores que una variable puede tomar haciendo uso de un texto para visualizar el nombre a cada valor, pero guardándose un número entero por detrás. Podemos tener una máquina de estados cuyos valores sean 0, 1 y 2. Para que sea más intuitivo y fácilmente legible el significado de cada número, podemos asignarle un “pendiente” al 0, “en proceso” al 1 y “finalizado” al 2.
De esta forma, no necesitamos recortar que “finalizado” se representa por un 2, solo con utilizar el texto de cada valor del enumerado, el compilador de Solidity lo hará por nosotros. En programación, cuando necesitamos clasificar y limitar los posibles valores de una variable, podemos utilizar listas y crear nuestros propios tipos de datos con todos los valores que una variable puede tener gracias a la enumeración.
Cómo implementar enumerados en Solidity
La implementación de Solidity es muy sencilla, basta con utilizar la palabra reservada enum
seguido del nombre del enumerado y sus posibles valores.
enum State { Pendiente, EnProceso, Finalizado };
La posición de cada valor del enumerado determina el índice que le corresponde siendo Pendiente = 0
, EnProceso = 1
y Finalizado = 2
.Ahora puedes declarar variables de este nuevo tipo de dato personalizado.
State status
Dentro de esta variable guardas el enumerado y puedes utilizarlo como condicionante para determinar el flujo de tu programa o asignarle nuevos valores a través del propio enumerado.
status = State.Finalizado;
if (status == State.Finalizado) {
}
El simple uso del enumerado State
nos ayuda a no tener que recordar el valor de cada elemento del enumerado utilizando el “Finalizado” y volviendo el código fuente mucho más legible y mantenible.
Aprovecha esta característica del lenguaje para escribir mejor código el día de mañana y que otro desarrollador o desarrolladora de software pueda entender rápidamente. Las buenas prácticas de programación hacen a la calidad del código y este tipo de característica te permitirá ser más claro con el propósito de un programa.
Contribución creada por: Kevin Fiorentino (Platzi Contributor).
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?