Enums in Variablen verwenden
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 60 von 65.
Da du nun weißt, wie man Enums definiert, wollen wir lernen, wie man sie tatsächlich in deinen Programmen verwendet. Sobald du ein Enum erstellt hast, kannst du Variablen dieses Enum-Typs deklarieren und ihnen bestimmte Werte zuweisen.
Um eine Variable eines Enum-Typs zu deklarieren, gibst du den Namen des Enums gefolgt vom Variablennamen an, genau wie bei jedem anderen Datentyp:
Weather todayWeather = Weather.sunny;Beachte, wie du auf Enum-Werte mithilfe der Punktnotation zugreifst: Weather.sunny. Damit teilst du Dart mit, dass du den Wert sunny aus dem Weather-Enum möchtest.
Du kannst den Wert der Variable in jeden anderen gültigen Enum-Wert ändern:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Der Vorteil der Verwendung von Enum-Variablen besteht darin, dass Dart sicherstellt, dass du nur gültige Enum-Werte zuweisen kannst. Du kannst einer Weather-Variablen nicht versehentlich "stormy" oder einen anderen ungültigen Wert zuweisen. Dadurch werden häufige Programmierfehler verhindert und dein Code wird zuverlässiger.
Aufgabe
EinfachErstelle ein Programm, das ein einfaches Aufgabenverfolgungssystem mithilfe von Aufzählungen und Variablen verwaltet. Deine Aufgabe ist es:
- Eine Aufzählung namens
TaskStatusmit den folgenden Werten zu definieren:todo,inProgress,testing,completedundcancelled - Eine Variable namens
task1Statusvom TypTaskStatuszu erstellen und ihr den WertTaskStatus.todozuzuweisen - Eine Variable namens
task2Statusvom TypTaskStatuszu erstellen und ihr den WertTaskStatus.inProgresszuzuweisen - Eine Variable namens
task3Statusvom TypTaskStatuszu erstellen und ihr den WertTaskStatus.completedzuzuweisen - Den Anfangsstatus aller Aufgaben im exakten Format auszugeben:
Task 1 status: TaskStatus.todo - Den Anfangsstatus von Aufgabe 2 im exakten Format auszugeben:
Task 2 status: TaskStatus.inProgress - Den Anfangsstatus von Aufgabe 3 im exakten Format auszugeben:
Task 3 status: TaskStatus.completed task1StatusaufTaskStatus.inProgresszu aktualisierentask2StatusaufTaskStatus.testingzu aktualisieren- Den aktualisierten Status von Aufgabe 1 im exakten Format auszugeben:
Updated Task 1 status: TaskStatus.inProgress - Den aktualisierten Status von Aufgabe 2 im exakten Format auszugeben:
Updated Task 2 status: TaskStatus.testing - Den endgültigen Status von Aufgabe 3 im exakten Format auszugeben:
Final Task 3 status: TaskStatus.completed
Dein Programm sollte die korrekte Definition einer Aufzählung mit dem Schlüsselwort enum, die Deklaration von Variablen mit Aufzählungstypen, den Zugriff auf Aufzählungswerte mithilfe der Punktnotation und die Aktualisierung von Aufzählungsvariablen demonstrieren. Achte darauf, die Dart-Namenskonventionen einzuhalten, bei denen der Name der Aufzählung mit einem Großbuchstaben beginnt und die Aufzählungswerte kleingeschrieben werden.
Probier es selbst
import 'dart:io';
// TODO: Definiere hier dein TaskStatus-Enum
void main() {
// TODO: Schreibe hier deinen Code
// 1. Erstelle die Variable task1Status und weise TaskStatus.todo zu
// 2. Erstelle die Variable task2Status und weise TaskStatus.inProgress zu
// 3. Erstelle die Variable task3Status und weise TaskStatus.completed zu
// 4. Gib den Anfangsstatus aller Aufgaben aus
// 5. Aktualisiere die Aufgabenstatus nach Bedarf
// 6. Gib die aktualisierten und finalen Status aus
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Listenmanipulation
Listen-Eigenschaften: first & lastListen-Status: isEmpty & isNotEmptyEine Liste umkehrenHinzufügen zu einer Liste: insertElemente aus Liste entfernen: removeWhereSuchen in einer Liste: indexOfEine Liste sortierenEine Liste mischenZusammenfassung – Listen-Organizer4Fortgeschrittene Map-Manipulation
Über eine Map iterierenPrüfen auf Schlüssel und WerteMap-Eigenschaften: keys & valuesBedingtes Hinzufügen: putIfAbsentEinträge aus einer Map entfernenVerschachtelte MapsRückblick – Inventar-Update7Fortgeschrittene Funktionen
Anonyme FunktionenFunktionen als Argumente übergebenClosures verstehenEinführung in die RekursionRekursive Funktion: CountdownRekursive Funktion: FakultätZusammenfassung – List Processor10Abschluss-Herausforderungen
Herausforderung: NotensortiererHerausforderung: VokalzählerHerausforderung: FizzBuzz2Funktionale Listenoperationen
Transformieren mit 'map'Filtern mit 'where''.toList()' verwendenBedingungen prüfen mit 'any'Bedingungen mit 'every'Suchen mit 'firstWhere'Zusammenfassung – Datenfilterung3Sets
Was ist ein Set?Ein Set erstellenHinzufügen und Entfernen in SetsPrüfen auf Elemente in einem SetEine Liste in ein Set umwandelnSet-VereinigungSet-SchnittmengeSet-DifferenzRückblick – Einzigartige Gästeliste6Grundlagen der Fehlerbehandlung
Was sind Exceptions?Der 'try-catch'-BlockExceptions mit 'on' abfangenDer 'finally'-BlockEine Exception auslösenRückblick - Sichere Division9Enumerations (Enums)
Was sind Enums?Einfache Enums definierenEnums in Variablen verwendenEnums in 'switch'-AnweisungenZusammenfassung – AmpelÜbe selbstständig: Online-Dart-Compiler