Estado de la lista: isEmpty y isNotEmpty
Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 2 de 65.
Antes de trabajar con elementos de una lista, es esencial saber si tu lista realmente contiene algún elemento. Dart proporciona dos propiedades simples para comprobar el estado de una lista: isEmpty y isNotEmpty.
La propiedad isEmpty devuelve true si la lista no tiene elementos, y false si contiene al menos un elemento. La propiedad isNotEmpty funciona de la manera opuesta: devuelve true cuando la lista tiene elementos y false cuando está vacía.
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // verdadero
print(emptyCart.isNotEmpty); // falso
print(shoppingCart.isEmpty); // falso
print(shoppingCart.isNotEmpty); // verdaderoEstas propiedades son particularmente útiles para prevenir errores al intentar acceder a elementos de una lista. Comprobar si una lista está vacía antes de usar propiedades como .first o .last te ayuda a escribir código más seguro y confiable.
Desafío
FácilCrea un programa que gestione un sistema de cola de tareas verificando si las listas de tareas están vacías o contienen elementos. Tu programa debe:
- Leer una entrada de cadena que represente el nombre de la cola
- Leer múltiples entradas de cadena que representen tareas (la entrada terminará cuando recibas una cadena vacía)
- Usar la propiedad
isEmptypara verificar si la lista de tareas está vacía - Usar la propiedad
isNotEmptypara verificar si la lista de tareas contiene tareas - Imprimir el estado de la cola en el formato exacto que se muestra a continuación
Por ejemplo, si el nombre de la cola es "Daily Tasks" y las tareas son "Review emails", "Attend meeting", "Write report", tu programa debería mostrar:
Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processingSi el nombre de la cola es "Weekend Tasks" y no se proporcionan tareas (entrada vacía), tu programa debería mostrar:
Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to processTu programa debe usar tanto la propiedad isEmpty como isNotEmpty para determinar el estado de la cola. El mensaje de estado debe ser "Ready for processing" cuando existan tareas y "No tasks to process" cuando la cola esté vacía.
Hoja de referencia
Usa las propiedades isEmpty y isNotEmpty para comprobar si una lista contiene elementos:
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // true
print(emptyCart.isNotEmpty); // false
print(shoppingCart.isEmpty); // false
print(shoppingCart.isNotEmpty); // trueEstas propiedades ayudan a prevenir errores al acceder a los elementos de la lista y hacen que el código sea más seguro y confiable.
Pruébalo tú mismo
import 'dart:io';
void main() {
// Leer el nombre de la cola
String? queueName = stdin.readLineSync();
// Leer tareas hasta que se reciba una cadena vacía
List<String> tasks = [];
String? task;
while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
tasks.add(task);
}
// TODO: Escribe tu código a continuación
// Usa las propiedades tasks.isEmpty y tasks.isNotEmpty para verificar el estado de la cola
// Determina el mensaje de estado apropiado basándote en si existen tareas
// Mostrar los resultados
print('Queue: $queueName');
// Imprimir si tiene tareas, si está vacía, el recuento de tareas y el estado
}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 única