Listen in Dart (2021): Part 1 List.filled List.empty und List.add

 

Das List Objekt in Dart
Vor langer Zeit hatte ich in diesem Blogg schon einmal das Thema Listen aufgegriffen.

Im ersten Post dazu, anhand eines einfachen Beispiels. Anschliessend war die Iterable Klasse ein Thema, welche mit der List Klasse einen engen Bezug hat. Abschließend wurde das Thema dann noch in einem zweiten Post vertieft.

Wie oben geschrieben war das vor langer Zeit und es macht Sinn das Thema noch einmal aufzugreifen und sei es nur um das Wissen dazu aufzufrischen. Alle Code Beispiele wurden mit Dart 2.13, Null safety aktiviert, getestet.


2 Sorten von Listen

Dart stellt zwei Arten von Listen zur Verfügung: eine mit fixer Grösse und eine die "wachsen" kann.

Liste in aktuellem Dart Code



Im Code oben sehen Sie zwei Versionen, wie Sie eine Liste definieren können. Wichtig dabei ist, das Sie die leere Liste erst dann über den Index ansprechen können, wenn Sie mindestens einen Eintrag hinzugefügt haben ! 

Im Vergleich zu früheren Dart Versionen hat sich das erstellen einer Liste mit fixer Länge geändert. Aktuell müssen Sie List.filled(Anzahl, Wert, growable:false) verwenden um diese zu erstellen. Wobei Sie growable auch weglassen können. Es ist die Default Einstellung. Diese Aussage gilt, wenn Sie mit null safety arbeiten, was zu empfehlen ist.

Mit List<String> haben wir oben eine Liste mit Zeichenketten definiert. Lassen Sie den Typ weg, können Sie eine dynamische Liste erstellen, die verschiedene Datentypen aufnehmen kann.

Eine Liste ohne fixe Länge wird mit einem leeren Paar [...] definiert, oder direkt mit Werten ['Wert1', 'Wert2'] :

Liste in Dart ohne fixe Länge

Ihr können Sie mit der .add Methode Werte hinzufügen. Natürlich können Sie auch für eine leere Liste einen <Typ> festlegen, zum Beispiel Liste<int> für eine Liste von Integerwerten.

List.filled(...)


Für eine Liste mit fixer Länge mussten Sie diese Klassenmethode schon verwenden. Diese 
Methode ist aber flexibel:

List.filled in Dart

Im Code oben sehen Sie, das auch eine growable Liste mit List.filled erstellt werden kann. Dazu müssen Sie den bool Wert growable auf true setzen. Im Gegensatz zu der fixen Liste können Sie dieser Werte mit der .add Methode hinzufügen.

Der wichtigste Punkt bei List.filled ist: alle Listeneinträge werden identisch sein ! Nur die Anzahl der Einträge können Sie variieren.

Manchmal aber möchten Sie vielleicht wirklich eine leere List. Neben der Möglichkeit eine leere Liste mit List meineLeereListe = [], zu generieren steht noch .empty zur Verfügung:

List.empty in Dart

Im Code oben sehen Sie die wie die fixe Liste mit List.empty(...) erstellt wird. Diese hat anschliessend eine Länge von 0 und kann nicht über den Index verwendet werden.

Die leere growable Liste wiederum generieren wir oben mit einer zusätzlichen Längenangabe von 3. Die erste drei Elemente der Liste enthalten anschliessend NULL. Das war es für den ersten Post zu diesem Thema. Part 2 finden Sie hier. Bis bald.



Kommentare

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

Dart und Klassen

Flutter Beispiel 6 -- BoxDecoration