Listen-Status: isEmpty & isNotEmpty
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy. Lektion 2 von 65.
Bevor Sie mit Listenelementen arbeiten, ist es wichtig zu wissen, ob Ihre Liste tatsächlich Elemente enthält. Dart bietet zwei einfache Eigenschaften, um den Zustand einer Liste zu prüfen: isEmpty und isNotEmpty.
Die Eigenschaft isEmpty gibt true zurück, wenn die Liste keine Elemente hat, und false, wenn sie mindestens ein Element enthält. Die Eigenschaft isNotEmpty funktioniert genau umgekehrt – sie gibt true zurück, wenn die Liste Elemente enthält, und false, wenn sie leer ist.
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // true
print(emptyCart.isNotEmpty); // false
print(shoppingCart.isEmpty); // false
print(shoppingCart.isNotEmpty); // trueDiese Eigenschaften sind besonders nützlich, um Fehler beim Zugriff auf Listenelemente zu vermeiden. Die Überprüfung, ob eine Liste leer ist, bevor Eigenschaften wie .first oder .last verwendet werden, hilft Ihnen dabei, sichereren und zuverlässigeren Code zu schreiben.
Aufgabe
EinfachErstelle ein Programm, das ein Aufgabenwarteschlangensystem verwaltet, indem es prüft, ob Aufgabenlisten leer sind oder Elemente enthalten. Dein Programm sollte:
- Eine Zeichenfolgeneingabe lesen, die den Namen der Warteschlange darstellt
- Mehrere Zeichenfolgeneingaben lesen, die Aufgaben darstellen (die Eingabe endet, sobald du eine leere Zeichenfolge erhältst)
- Die Eigenschaft
isEmptyverwenden, um zu prüfen, ob die Aufgabenliste leer ist - Die Eigenschaft
isNotEmptyverwenden, um zu prüfen, ob die Aufgabenliste Aufgaben enthält - Den Status der Warteschlange im unten gezeigten exakten Format ausgeben
Wenn der Name der Warteschlange beispielsweise "Daily Tasks" lautet und die Aufgaben "Review emails", "Attend meeting", "Write report" sind, sollte dein Programm Folgendes ausgeben:
Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processingWenn der Name der Warteschlange "Weekend Tasks" lautet und keine Aufgaben angegeben werden (leere Eingabe), sollte dein Programm Folgendes ausgeben:
Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to processDein Programm muss sowohl die Eigenschaften isEmpty als auch isNotEmpty verwenden, um den Status der Warteschlange zu bestimmen. Die Statusmeldung sollte "Ready for processing" lauten, wenn Aufgaben vorhanden sind, und "No tasks to process", wenn die Warteschlange leer ist.
Probier es selbst
import 'dart:io';
void main() {
// Warteschlangennamen lesen
String? queueName = stdin.readLineSync();
// Aufgaben lesen, bis eine leere Zeichenfolge empfangen wird
List<String> tasks = [];
String? task;
while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
tasks.add(task);
}
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie die Eigenschaften tasks.isEmpty und tasks.isNotEmpty, um den Status der Warteschlange zu prüfen
// Bestimmen Sie die entsprechende Statusmeldung basierend darauf, ob Aufgaben vorhanden sind
// Ergebnisse ausgeben
print('Queue: $queueName');
// Hat Aufgaben, ist leer, Aufgabenanzahl und Status ausgeben
}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ästelisteÜbe selbstständig: Online-Dart-Compiler