Enumeraciones
Parte de la sección Fundamentos del Journey de Solidity de Coddy. Lección 44 de 53.
Un enum define un pequeño conjunto de opciones con nombre. Declara sus miembros en orden y, después, haz referencia a un miembro como TypeName.MemberName. El primer miembro tiene el valor numérico cero, el siguiente tiene el valor uno, y así sucesivamente. Las opciones con nombre hacen que un estado sea más fácil de leer que unos números sin explicación.
Decláralo en el ámbito del contrato:
enum Phase { Waiting, Packing, Complete }Úsalo dentro de la función main proporcionada:
Phase phase = Phase.Packing;
console.log(uint256(phase));La declaración enumera Waiting, Packing y Complete. Packing es el segundo miembro y, por lo tanto, se convierte en uno. Convertir un número arbitrario en una enumeración puede revertir cuando el número está fuera de su rango definido, así que usa aquí miembros con nombre.
Los miembros de una enumeración tienen valores numéricos que comienzan en cero, en el orden de la declaración.
Desafío
FácilDeclara el enum Mode con Idle, Running y Finished en ese orden. Elige Running cuando active sea true; de lo contrario, elige Idle, e imprime el valor numérico.
Las pruebas pasan argumentos a main en este orden: bool active. Cada prueba comienza con un estado de contrato nuevo.
Usa console.log para la salida solicitada. Imprime únicamente los valores solicitados, uno por línea, sin etiquetas adicionales a menos que la tarea las especifique.
Pruébalo tú mismo
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(bool active) external view {
// Escribe tu solución aquí.
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
10Reglas de los contratos
Condiciones requireReversiones explícitasEventosVisibilidad y privacidadActualizaciones verificadas2Variables y tipos
Enteros sin signoEntradas y salidasEnteros con signoValores booleanosCadenas en memoriaTarjeta de perfil5Funciones
Parámetros de funcionesValores de retornoFunciones purasLlamadas auxiliaresCálculos reutilizablesPractica por tu cuenta: Playground de Solidity