Listen in Dart (2021): Part 3 List.take List.of und List.from
Weiter geht es mit dem Thema Listen in der Programmiersprache Dart.
Sie könnten jetzt denken, okay, zu viel Arbeit .Ich schaue mir die Methoden und Funktionen an, wenn ich sie benötige.
Natürlich kann man so vorgehen. Sie sollten aber im Hinterkopf behalten, das eine gute Kenntnisse der Hauptklassen in Dart hilft, von Anfang an, die richtigen Dart Bordmittel zu wählen, um Ihre Problemstellung zu lösen. Das als Randnotiz. Wie immer wurde der Beispiel Code im DartPad getestet und ist mit Dart. 2.13 lauffähig.
List. take
Die Methode List.getRange(...) hatte wir ja schon betrachtet. In die gleiche Kategorie fällt List.take. Der Unterschied ist, das .getRange(...) einen Teilbereich der Liste zurückgibt, den wir durch die Position im Index definieren. Dieser Bereich kann durchaus am Ende der Liste sein. List.take beginnt am Start der Liste und überführt die spezifizierte Anzahl Einträge in ein neues Iterable. Verwenden Sie .toList(...) am Schluss, können Sie das Ergebnis gleich in eine List<dynamic> wandeln, was die Verwendung der Printfunktion vereinfacht:
List.of / List.from
Hier noch ein Nachzügler zu den Möglichkeiten eine Liste zu definieren. Aber hier ein kurzes Vorwort: Dart in der aktuellen Version ist eine typensichere Programmiersprache. Damit ist gemeint, das der Compiler kontrolliert, ob die verwendeten Typen konform eingesetzt werden. Wenn Sie sich mit Listen in Dart beschäftigen, stellt sich zuerst einmal die Frage: Was ist eine Liste ?
Die Antwort ist einfach: eine Sammlung von Daten. Um mit solchen Datensammlungen umzugehen bietet Dart verschiedene Typen. List ist eine davon, Set, Map, Queue sind andere. Es kann Situationen geben, wo Sie eine Sammlung vom Typ iterable<dynamic> , in eine Sammlung vom Typ List überführen müssen:
Im Code oben sehen Sie zum Start die Definierung von zwei Listen, eine mit List.of, die andere mit List.from. Das Schema ist einfach:
List.of(<Typ>[ Typ Elemente]) und List.from(<Typ>[Typ Elemente])
An sich sind diese zwei Methoden dazu gedacht, das man Ihnen eine Sammlung von Daten übergibt, ein iterable. Mit
List.of(meineDynamischen1) tun wir genau das. Wir erhalten eine neue Liste als Ergebnis zurück !
Mit List.from haben Sie die Möglichkeiten eine Funktion einzubauen, die selektiert, was in diese neue Liste übernommen wird. Mit
List.from(meineDynamischen1.where((x)=> x is String )) ;
benutzen Sie die .where Methode der iterable Klasse. Wobei (x) als Index funktioniert und mit =>x is String jeder Eintrag des iterable darauf überprüft wird, ob er vom Typ String ist.
Trifft das zu, wird der Eintrag in die neue Liste übernommen.
Tip: Es ist immer wichtig zu wissen, ob eine Methode eine neue Liste, oder ein verändertes Original als Ergebnis liefert !
Kommentare
Kommentar veröffentlichen