Listen-Eigenschaften: first & last
Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 1 von 65.
Beim Arbeiten mit Listen müssen Sie oft auf das erste oder letzte Element zugreifen. Anstatt Indexnummern wie [0] oder [list.length - 1] zu verwenden, bietet Dart zwei praktische Eigenschaften, die dies viel einfacher machen.
Die Eigenschaft .first liefert Ihnen das erste Element in einer Liste, während die Eigenschaft .last Ihnen das letzte Element liefert. Diese Eigenschaften sind besser lesbar und weniger fehleranfällig als die Berechnung von Indexpositionen.
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Diese Eigenschaften funktionieren mit jeder nicht leeren Liste und übernehmen automatisch die Indexberechnungen für Sie. Dies macht Ihren Code sauberer und leichter verständlich, wenn Sie mit den Elementen am Anfang oder Ende Ihrer Listen arbeiten müssen.
Aufgabe
EinfachErstellen Sie ein Programm, das eine Musik-Playlist analysiert, indem es auf den ersten und den letzten Song zugreift. Ihr Programm sollte:
- Einen String-Input einlesen, der den Namen der Playlist darstellt
- Mehrere String-Inputs einlesen, die Songtitel darstellen (die Eingabe endet, wenn Sie einen leeren String erhalten)
- Die Eigenschaft
.firstverwenden, um den ersten Song in der Playlist abzurufen - Die Eigenschaft
.lastverwenden, um den letzten Song in der Playlist abzurufen - Die Playlist-Analyse im unten gezeigten exakten Format ausgeben
Wenn der Name der Playlist zum Beispiel "My Favorites" ist und die Songs "Bohemian Rhapsody", "Imagine", "Hotel California" sind, sollte Ihr Programm Folgendes ausgeben:
Playlist: My Favorites
Total songs: 3
Opening track: Bohemian Rhapsody
Closing track: Hotel CaliforniaIhr Programm muss Playlists mit einer beliebigen Anzahl von Songs verarbeiten und die Eigenschaften .first und .last verwenden, um auf den Eröffnungs- und den Schlusstrack zuzugreifen.
Spickzettel
Verwenden Sie die Eigenschaften .first und .last, um auf das erste und letzte Element einer Liste zuzugreifen:
List<String> planets = ['Mercury', 'Venus', 'Earth', 'Mars'];
String firstPlanet = planets.first; // 'Mercury'
String lastPlanet = planets.last; // 'Mars'Diese Eigenschaften sind besser lesbar als die Verwendung von Indexnummern wie [0] oder [list.length - 1] und funktionieren mit jeder nicht leeren Liste.
Probier es selbst
import 'dart:io';
void main() {
// Playlist-Namen lesen
String? playlistName = stdin.readLineSync();
// Lieder lesen, bis eine leere Zeichenfolge eingegeben wird
List<String> songs = [];
String? song;
while ((song = stdin.readLineSync()) != null && song!.isNotEmpty) {
songs.add(song);
}
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie songs.first und songs.last, um den ersten und letzten Titel zu erhalten
// Playlist-Analyse ausgeben
print("Playlist: $playlistName");
print("Total songs: ${songs.length}");
// Eröffnungs- und Schlusstitel hier 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