Używanie enumów w zmiennych
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 60 z 65.
Skoro wiesz już, jak definiować typy wyliczeniowe, nauczmy się teraz, jak faktycznie używać ich w programach. Gdy utworzysz typ wyliczeniowy, możesz deklarować zmienne tego typu i przypisywać im konkretne wartości.
Aby zadeklarować zmienną typu wyliczeniowego, podajesz nazwę typu wyliczeniowego, a następnie nazwę zmiennej, tak jak w przypadku każdego innego typu danych:
Weather todayWeather = Weather.sunny;Zwróć uwagę, że dostęp do wartości wyliczenia uzyskujesz za pomocą notacji kropkowej: Weather.sunny. Informuje to Dart, że chcesz użyć wartości sunny z wyliczenia Weather.
Możesz zmienić wartość zmiennej na dowolną inną prawidłową wartość wyliczeniową:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Zaletą korzystania ze zmiennych typu enum jest to, że Dart gwarantuje, iż możesz przypisywać im tylko prawidłowe wartości enum. Nie możesz przypadkowo przypisać wartości "stormy" ani żadnej innej nieprawidłowej wartości do zmiennej typu Weather, co zapobiega częstym błędom programistycznym i zwiększa niezawodność Twojego kodu.
Wyzwanie
ŁatwyUtwórz program, który zarządza prostym systemem śledzenia zadań za pomocą typów wyliczeniowych i zmiennych. Twoje zadanie:
- Zdefiniuj typ wyliczeniowy o nazwie
TaskStatusz następującymi wartościami:todo,inProgress,testing,completedicancelled - Utwórz zmienną o nazwie
task1StatustypuTaskStatusi przypisz jej wartośćTaskStatus.todo - Utwórz zmienną o nazwie
task2StatustypuTaskStatusi przypisz jej wartośćTaskStatus.inProgress - Utwórz zmienną o nazwie
task3StatustypuTaskStatusi przypisz jej wartośćTaskStatus.completed - Wypisz początkowy status wszystkich zadań w dokładnym formacie:
Task 1 status: TaskStatus.todo - Wypisz początkowy status zadania 2 w dokładnym formacie:
Task 2 status: TaskStatus.inProgress - Wypisz początkowy status zadania 3 w dokładnym formacie:
Task 3 status: TaskStatus.completed - Zaktualizuj
task1StatusdoTaskStatus.inProgress - Zaktualizuj
task2StatusdoTaskStatus.testing - Wypisz zaktualizowany status zadania 1 w dokładnym formacie:
Updated Task 1 status: TaskStatus.inProgress - Wypisz zaktualizowany status zadania 2 w dokładnym formacie:
Updated Task 2 status: TaskStatus.testing - Wypisz końcowy status zadania 3 w dokładnym formacie:
Final Task 3 status: TaskStatus.completed
Twój program powinien pokazywać prawidłową definicję typu wyliczeniowego za pomocą słowa kluczowego enum, deklarowanie zmiennych typów wyliczeniowych, dostęp do wartości typu wyliczeniowego za pomocą notacji kropkowej oraz aktualizowanie zmiennych typu wyliczeniowego. Pamiętaj o konwencjach nazewnictwa Dart: nazwa typu wyliczeniowego zaczyna się wielką literą, a jego wartości zapisuje się małymi literami.
Spróbuj swoich sił
import 'dart:io';
// TODO: Zdefiniuj tutaj enum TaskStatus
void main() {
// TODO: Napisz tutaj swój kod
// 1. Utwórz zmienną task1Status i przypisz jej TaskStatus.todo
// 2. Utwórz zmienną task2Status i przypisz jej TaskStatus.inProgress
// 3. Utwórz zmienną task3Status i przypisz jej TaskStatus.completed
// 4. Wypisz początkowy status wszystkich zadań
// 5. Zaktualizuj statusy zadań zgodnie z wymaganiami
// 6. Wypisz zaktualizowane i końcowe statusy
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Zaawansowana manipulacja listami
Właściwości listy: first i lastStan listy: isEmpty i isNotEmpOdwracanie listyDodawanie do listy: insertUsuwanie z listy: removeWhereWyszukiwanie na liście: indexOfSortowanie listyMieszanie elementów listyPodsumowanie – Organizator listy4Zaawansowane operacje na mapach
Iterowanie po mapieSprawdzanie kluczy i wartościWłaściwości mapy: klucze i wartościDodawanie warunkowe: putIfAbsentUsuwanie wpisów z mapyZagnieżdżone mapyPodsumowanie – aktualizacja stanu magazynowego2Operacje funkcyjne na listach
Przekształcanie za pomocą 'map'Filtrowanie za pomocą 'where'Używanie '.toList()'Sprawdzanie warunków za pomocą 'any'Warunki z użyciem 'every'Wyszukiwanie za pomocą 'firstWhere'Podsumowanie — filtrowanie danych5Projekt: Kalkulator koszyka zakupowego
Konfiguracja projektuDodawanie produktów do koszyka3Zbiory
Czym jest zbiór?Tworzenie zbioruDodawanie i usuwanie elementów ze zbiorówSprawdzanie, czy element znajduje się w zbiorzeKonwersja listy na zbiórSuma zbiorówCzęść wspólna zbiorówRóżnica zbiorówPodsumowanie — unikalna lista gości6Podstawy obsługi błędów
Czym są wyjątki?Blok „try-catch”Przechwytywanie wyjątków za pomocą „on”Blok „finally”Rzucanie wyjątkuPodsumowanie – bezpieczne dzielenie9Wyliczenia (enumy)
Czym są enumy?Definiowanie prostego enumaUżywanie enumów w zmiennychEnumy w instrukcjach „switch”Podsumowanie – sygnalizacja świetlnaPoćwicz samodzielnie: Kompilator Dart online