Estado da Lista: isEmpty & isNotEmpty
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 2 de 65.
Antes de trabalhar com elementos de lista, é essencial saber se a sua lista realmente contém algum item. Dart fornece duas propriedades simples para verificar o estado de uma lista: isEmpty e isNotEmpty.
A propriedade isEmpty retorna true se a lista não tiver elementos, e false se contiver pelo menos um elemento. A propriedade isNotEmpty funciona de maneira oposta - ela retorna true quando a lista possui elementos e false quando está vazia.
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // verdadeiro
print(emptyCart.isNotEmpty); // falso
print(shoppingCart.isEmpty); // falso
print(shoppingCart.isNotEmpty); // verdadeiroEssas propriedades são particularmente úteis para evitar erros ao tentar acessar elementos de uma lista. Verificar se uma lista está vazia antes de usar propriedades como .first ou .last ajuda você a escrever um código mais seguro e confiável.
Desafio
FácilCrie um programa que gerencie um sistema de fila de tarefas, verificando se as listas de tarefas estão vazias ou contêm itens. Seu programa deve:
- Ler uma entrada de string representando o nome da fila
- Ler múltiplas entradas de string representando tarefas (a entrada terminará quando você receber uma string vazia)
- Usar a propriedade
isEmptypara verificar se a lista de tarefas está vazia - Usar a propriedade
isNotEmptypara verificar se a lista de tarefas contém tarefas - Imprimir o status da fila no formato exato mostrado abaixo
Por exemplo, se o nome da fila for "Daily Tasks" e as tarefas forem "Review emails", "Attend meeting", "Write report", seu programa deve exibir:
Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processingSe o nome da fila for "Weekend Tasks" e nenhuma tarefa for fornecida (entrada vazia), seu programa deve exibir:
Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to processSeu programa deve usar ambas as propriedades isEmpty e isNotEmpty para determinar o status da fila. A mensagem de status deve ser "Ready for processing" quando existirem tarefas e "No tasks to process" quando a fila estiver vazia.
Folha de consulta
Use as propriedades isEmpty e isNotEmpty para verificar se uma lista contém 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); // trueEssas propriedades ajudam a prevenir erros ao acessar elementos da lista e tornam o código mais seguro e confiável.
Experimente você mesmo
import 'dart:io';
void main() {
// Ler o nome da fila
String? queueName = stdin.readLineSync();
// Ler tarefas até que uma string vazia seja recebida
List<String> tasks = [];
String? task;
while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
tasks.add(task);
}
// TODO: Escreva seu código abaixo
// Use as propriedades tasks.isEmpty e tasks.isNotEmpty para verificar o status da fila
// Determine a mensagem de status apropriada com base na existência de tarefas
// Exibir os resultados
print('Queue: $queueName');
// Imprimir se tem tarefas, se está vazia, a contagem de tarefas e o status
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados Únicos