Stan listy: isEmpty i isNotEmp
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 2 z 65.
Zanim zaczniesz pracować z elementami listy, warto sprawdzić, czy lista rzeczywiście zawiera jakieś elementy. Dart udostępnia dwie proste właściwości do sprawdzania stanu listy: isEmpty i isNotEmpty.
Właściwość isEmpty zwraca wartość true, jeśli lista nie zawiera żadnych elementów, a false, jeśli zawiera co najmniej jeden element. Właściwość isNotEmpty działa odwrotnie — zwraca wartość true, gdy lista zawiera elementy, a false, gdy jest pusta.
List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];
print(emptyCart.isEmpty); // true
print(emptyCart.isNotEmpty); // false
print(shoppingCart.isEmpty); // false
print(shoppingCart.isNotEmpty); // trueTe właściwości są szczególnie przydatne do zapobiegania błędom podczas próby uzyskania dostępu do elementów listy. Sprawdzenie, czy lista jest pusta, przed użyciem właściwości takich jak .first lub .last pomaga pisać bezpieczniejszy i bardziej niezawodny kod.
Wyzwanie
ŁatwyUtwórz program, który zarządza systemem kolejki zadań, sprawdzając, czy listy zadań są puste, czy zawierają elementy. Twój program powinien:
- Odczytać ciąg znaków reprezentujący nazwę kolejki
- Odczytać wiele ciągów znaków reprezentujących zadania (dane wejściowe zakończą się po otrzymaniu pustego ciągu znaków)
- Użyć właściwości
isEmpty, aby sprawdzić, czy lista zadań jest pusta - Użyć właściwości
isNotEmpty, aby sprawdzić, czy lista zadań zawiera zadania - Wyświetlić status kolejki w dokładnym formacie pokazanym poniżej
Na przykład, jeśli nazwa kolejki to "Daily Tasks", a zadania to "Review emails", "Attend meeting", "Write report", program powinien wyświetlić:
Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processingJeśli nazwa kolejki to "Weekend Tasks" i nie podano żadnych zadań (puste dane wejściowe), program powinien wyświetlić:
Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to processProgram musi używać zarówno właściwości isEmpty, jak i isNotEmpty, aby określić status kolejki. Komunikatem statusu powinno być "Ready for processing", gdy istnieją zadania, oraz "No tasks to process", gdy kolejka jest pusta.
Spróbuj swoich sił
import 'dart:io';
void main() {
// Wczytaj nazwę kolejki
String? queueName = stdin.readLineSync();
// Wczytuj zadania do momentu otrzymania pustego ciągu znaków
List<String> tasks = [];
String? task;
while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
tasks.add(task);
}
// TODO: Napisz swój kod poniżej
// Użyj właściwości tasks.isEmpty i tasks.isNotEmpty, aby sprawdzić stan kolejki
// Określ odpowiedni komunikat o stanie w zależności od tego, czy istnieją zadania
// Wyświetl wyniki
print('Queue: $queueName');
// Wyświetl, czy kolejka zawiera zadania, czy jest pusta, liczbę zadań i stan
}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ściPoćwicz samodzielnie: Kompilator Dart online