Usando Enums em variáveis
Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 60 de 65.
Agora que você sabe como definir enums, vamos aprender como realmente usá-los em seus programas. Depois de criar um enum, você pode declarar variáveis desse tipo enum e atribuir valores específicos a elas.
Para declarar uma variável de um tipo enum, você especifica o nome do enum seguido pelo nome da variável, assim como em qualquer outro tipo de dado:
Weather todayWeather = Weather.sunny;Observe como você acessa valores de enum usando a notação de ponto: Weather.sunny. Isso informa ao Dart que você deseja o valor sunny do enum Weather.
Você pode alterar o valor da variável para qualquer outro valor de enum válido:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;A beleza de usar variáveis enum é que o Dart garante que você só possa atribuir valores enum válidos. Você não pode atribuir acidentalmente "stormy" ou qualquer outro valor inválido a uma variável Weather, o que evita erros de programação comuns e torna seu código mais confiável.
Desafio
FácilCrie um programa que gerencie um sistema simples de rastreamento de tarefas usando enums e variáveis. Sua tarefa é:
- Definir um enum chamado
TaskStatuscom os seguintes valores:todo,inProgress,testing,completed, ecancelled - Criar uma variável chamada
task1Statusdo tipoTaskStatuse atribuir a ela o valorTaskStatus.todo - Criar uma variável chamada
task2Statusdo tipoTaskStatuse atribuir a ela o valorTaskStatus.inProgress - Criar uma variável chamada
task3Statusdo tipoTaskStatuse atribuir a ela o valorTaskStatus.completed - Imprimir o status inicial de todas as tarefas com o formato exato:
Task 1 status: TaskStatus.todo - Imprimir o status inicial da tarefa 2 com o formato exato:
Task 2 status: TaskStatus.inProgress - Imprimir o status inicial da tarefa 3 com o formato exato:
Task 3 status: TaskStatus.completed - Atualizar
task1StatusparaTaskStatus.inProgress - Atualizar
task2StatusparaTaskStatus.testing - Imprimir o status atualizado da tarefa 1 com o formato exato:
Updated Task 1 status: TaskStatus.inProgress - Imprimir o status atualizado da tarefa 2 com o formato axato:
Updated Task 2 status: TaskStatus.testing - Imprimir o status final da tarefa 3 com o formato exato:
Final Task 3 status: TaskStatus.completed
Seu programa deve demonstrar a definição adequada de enum usando a palavra-chave enum, declaração de variáveis com tipos enum, acesso a valores de enum usando a notação de ponto e atualização de variáveis enum. Certifique-se de seguir as convenções de nomenclatura do Dart, onde o nome do enum começa com uma letra maiúscula e os valores do enum são escritos em letras minúsculas.
Folha de consulta
Para declarar uma variável de um tipo enum, especifique o nome do enum seguido pelo nome da variável:
Weather todayWeather = Weather.sunny;Acesse os valores do enum usando a notação de ponto com o formato EnumName.value:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;O Dart garante que você só possa atribuir valores de enum válidos a variáveis de enum, evitando atribuições inválidas e tornando o código mais confiável.
Experimente você mesmo
import 'dart:io';
// TODO: Defina seu enum TaskStatus aqui
void main() {
// TODO: Escreva seu código aqui
// 1. Crie a variável task1Status e atribua TaskStatus.todo
// 2. Crie a variável task2Status e atribua TaskStatus.inProgress
// 3. Crie a variável task3Status e atribua TaskStatus.completed
// 4. Imprima o status inicial de todas as tarefas
// 5. Atualize os status das tarefas conforme necessário
// 6. Imprima os status atualizados e finais
}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 Únicos6Tratamento de Erros Básico
O que são Exceções?O Bloco 'try-catch'Capturando Exceções com 'on'O Bloco 'finally'Lançando uma ExceçãoRecapitulação - Divisão Segura9Enumerações (Enums)
O que são Enums?Definindo um Enum simplesUsando Enums em variáveisEnums em instruções 'switch'Recapitulação - Semáforo