Właściwości listy: first i last
Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 1 z 65.
Podczas pracy z listami często trzeba uzyskać dostęp do pierwszego lub ostatniego elementu. Zamiast używać indeksów, takich jak [0] lub [list.length - 1], Dart udostępnia dwie wygodne właściwości, które znacznie to upraszczają.
Właściwość .first zwraca pierwszy element listy, a właściwość .last zwraca ostatni element. Te właściwości są czytelniejsze i mniej podatne na błędy niż obliczanie pozycji indeksów.
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Te właściwości działają z każdą niepustą listą i automatycznie wykonują za Ciebie obliczenia indeksów. Dzięki temu Twój kod jest czytelniejszy i łatwiejszy do zrozumienia, gdy musisz pracować z elementami na początku lub na końcu list.
Wyzwanie
ŁatwyUtwórz program, który analizuje playlistę, pobierając pierwszy i ostatni utwór. Twój program powinien:
- Wczytać ciąg znaków reprezentujący nazwę playlisty
- Wczytać wiele ciągów znaków reprezentujących tytuły utworów (wczytywanie zakończy się po otrzymaniu pustego ciągu znaków)
- Użyć właściwości
.first, aby pobrać pierwszy utwór z playlisty - Użyć właściwości
.last, aby pobrać ostatni utwór z playlisty - Wypisać analizę playlisty w dokładnym formacie pokazanym poniżej
Na przykład, jeśli nazwa playlisty to "My Favorites", a utwory to "Bohemian Rhapsody", "Imagine", "Hotel California", Twój program powinien wypisać:
Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel CaliforniaTwój program musi obsługiwać playlisty zawierające dowolną liczbę utworów oraz używać właściwości .first i .last, aby pobierać utwór rozpoczynający i kończący playlistę.
Spróbuj swoich sił
import 'dart:io';
void main() {
// Wczytaj nazwę playlisty
String? playlistName = stdin.readLineSync();
// Wczytuj utwory aż do pustego ciągu znaków
List<String> songs = [];
String? song;
while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
songs.add(song);
}
// TODO: Napisz swój kod poniżej
// Użyj songs.first i songs.last, aby uzyskać pierwszy i ostatni utwór
// Wyświetl analizę playlisty
print("Playlist: $playlistName");
print("Total songs: ${songs.length}");
// Wyświetl tutaj pierwszy i ostatni utwór
}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