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 enumeraciones, aprendamos a usarlas realmente en tus programas. Una vez que hayas creado una enumeración, puedes declarar variables de ese tipo de enumeración y asignarles valores específicos.
Para declarar una variable de un tipo enumerado, especifica el nombre del enum seguido del nombre de la variable, igual que con cualquier otro tipo de datos:
Weather todayWeather = Weather.sunny;Observa cómo accedes a los valores del enum mediante la notación de punto: Weather.sunny. Esto indica a Dart que quieres el valor sunny del enum Weather.
Puedes cambiar el valor de la variable a cualquier otro valor válido del enumerador:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;La ventaja 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 fiable.
Desafío
FácilCrea un programa que gestione un sistema sencillo de seguimiento de tareas mediante enumeraciones y variables. Tu tarea consiste en:
- Definir una enumeración llamada
TaskStatuscon los siguientes valores:todo,inProgress,testing,completedycancelled - Crear una variable llamada
task1Statusde tipoTaskStatusy asignarle el valorTaskStatus.todo - Crear una variable llamada
task2Statusde tipoTaskStatusy asignarle el valorTaskStatus.inProgress - Crear una variable llamada
task3Statusde tipoTaskStatusy asignarle el valorTaskStatus.completed - Imprimir el estado inicial de todas las tareas con el formato exacto:
Task 1 status: TaskStatus.todo - Imprimir el estado inicial de la tarea 2 con el formato exacto:
Task 2 status: TaskStatus.inProgress - Imprimir el estado inicial de la tarea 3 con el formato exacto:
Task 3 status: TaskStatus.completed - Actualizar
task1StatusaTaskStatus.inProgress - Actualizar
task2StatusaTaskStatus.testing - Imprimir el estado actualizado de la tarea 1 con el formato exacto:
Updated Task 1 status: TaskStatus.inProgress - Imprimir el estado actualizado de la tarea 2 con el formato exacto:
Updated Task 2 status: TaskStatus.testing - Imprimir el estado final de la tarea 3 con el formato exacto:
Final Task 3 status: TaskStatus.completed
Tu programa debe demostrar la definición correcta de una enumeración mediante la palabra clave enum, la declaración de variables con tipos de enumeración, el acceso a los valores de la enumeración mediante la notación de punto y la actualización de variables de enumeración. Asegúrate de seguir las convenciones de nomenclatura de Dart, según las cuales el nombre de la enumeración comienza con una letra mayúscula y los valores de la enumeración se escriben en minúsculas.
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áforoPractica por tu cuenta: Compilador de Dart online