Uso de Enums en variables
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 60 de 65.
Ahora que sabes cómo definir enums, aprendamos cómo usarlos realmente en tus programas. Una vez que hayas creado un enum, puedes declarar variables de ese tipo de enum y asignarles valores específicos.
Para declarar una variable de un tipo enum, especificas el nombre del enum seguido del nombre de la variable, al igual que con cualquier otro tipo de dato:
Weather todayWeather = Weather.sunny;Observa cómo accedes a los valores de un enum usando la notación de punto: Weather.sunny. Esto le indica a Dart que quieres el valor sunny del enum Weather.
Puedes cambiar el valor de la variable a cualquier otro valor de enum válido:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;La belleza de usar variables enum es que Dart garantiza que solo puedas asignar valores enum válidos. No puedes asignar accidentalmente "stormy" ni ningún otro valor no válido a una variable Weather, lo que evita errores de programación comunes y hace que tu código sea más confiable.
Desafío
FácilCrea un programa que gestione un sistema sencillo de seguimiento de tareas utilizando enums y variables. Tu tarea es:
- Define un enum llamado
TaskStatuscon los siguientes valores:todo,inProgress,testing,completed, ycancelled - Crea una variable llamada
task1Statusde tipoTaskStatusy asígnale el valorTaskStatus.todo - Crea una variable llamada
task2Statusde tipoTaskStatusy asígnale el valorTaskStatus.inProgress - Crea una variable llamada
task3Statusde tipoTaskStatusy asígnale el valorTaskStatus.completed - Imprime el estado inicial de todas las tareas con el formato exacto:
Task 1 status: TaskStatus.todo - Imprime el estado inicial de la tarea 2 con el formato exacto:
Task 2 status: TaskStatus.inProgress - Imprime el estado inicial de la tarea 3 con el formato exacto:
Task 3 status: TaskStatus.completed - Actualiza
task1StatusaTaskStatus.inProgress - Actualiza
task2StatusaTaskStatus.testing - Imprime el estado actualizado de la tarea 1 con el formato exacto:
Updated Task 1 status: TaskStatus.inProgress - Imprime el estado actualizado de la tarea 2 con el formato exacto:
Updated Task 2 status: TaskStatus.testing - Imprime el estado final de la tarea 3 con el formato exacto:
Final Task 3 status: TaskStatus.completed
Tu programa debe demostrar la definición adecuada de un enum utilizando la palabra clave enum, la declaración de variables con tipos enum, el acceso a los valores del enum utilizando la notación de punto y la actualización de variables enum. Asegúrate de seguir las convenciones de nomenclatura de Dart, donde el nombre del enum comienza con una letra mayúscula y los valores del enum se escriben en minúsculas.
Hoja de referencia
Para declarar una variable de un tipo enum, especifica el nombre del enum seguido del nombre de la variable:
Weather todayWeather = Weather.sunny;Accede a los valores del enum utilizando la notación de punto con el formato EnumName.value:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Dart garantiza que solo puedas asignar valores de enum válidos a las variables de enum, evitando asignaciones inválidas y haciendo que el código sea más confiable.
Pruébalo tú mismo
import 'dart:io';
// TODO: Define tu enum TaskStatus aquí
void main() {
// TODO: Escribe tu código aquí
// 1. Crea la variable task1Status y asigna TaskStatus.todo
// 2. Crea la variable task2Status y asigna TaskStatus.inProgress
// 3. Crea la variable task3Status y asigna TaskStatus.completed
// 4. Imprime el estado inicial de todas las tareas
// 5. Actualiza los estados de las tareas según sea necesario
// 6. Imprime los estados actualizados y finales
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Manipulación avanzada de listas
Propiedades de listas: first y lastEstado de la lista: isEmpty y isNotEmptyInvertir una listaAñadir a una lista: insertEliminación en listas: removeWhereBúsqueda en una lista: indexOfOrdenar una listaMezclar una listaResumen - Organizador de listas4Manipulación avanzada de mapas
Iterar sobre un mapaComprobación de claves y valoresPropiedades del mapa: keys y valuesAdición condicional: putIfAbsentEliminar entradas de un mapaMapas anidadosResumen - Actualización de inventario2Operaciones funcionales con listas
Transformar con 'map'Filtrar con 'where'Uso de '.toList()'Comprobar condiciones con 'any'Condiciones con 'every'Búsqueda con 'firstWhere'Resumen - Filtrado de datos5Proyecto: Calculadora de carrito de compras
Configuración del proyectoAgregar artículos al carrito3Conjuntos
¿Qué es un Conjunto?Crear un ConjuntoAñadir y eliminar elementos de un ConjuntoComprobar elementos en un ConjuntoConvertir una lista en un ConjuntoUnión de ConjuntosIntersección de ConjuntosDiferencia de ConjuntosResumen - Lista de invitados única6Manejo básico de errores
¿Qué son las excepciones?El bloque 'try-catch'Capturar excepciones con 'on'El bloque 'finally'Lanzar una excepciónResumen - División segura9Enumeraciones (Enums)
¿Qué son los Enums?Definir un Enum simpleUso de Enums en variablesEnums en sentencias 'switch'Resumen - Semáforo