Dart Basic: Listen Part 1

In diesem Post wenden wir uns einem Basiselement fast jeder Programmiersprache zu, der Liste.
Als Laie könnte man meinen, okay ein einfaches Thema, aber wen man genau hinschaut, ist es vielfältiger, als man denken möchte.



Eine Liste kann nicht wachsen ?


Es gibt Situationen, da wissen wir im Vorfeld schon, wie groß eine Liste sein wird.  Die Liste deiner Freunde zum Beispiel oder eine Liste deiner Familie. Der Anfang ist einfach. Wir haben eine Variable, meineKleineListe, diese ist vom Typ List<String>. Ihr weisen wir anschließend mit new List(5) ein neues Listen Objekt zu. Unsere Variable meineKleineListe kann nun als Liste angesprochen werden und hat genau...wir sind verwundert..Platz für 5 Einträge. Kommen wir aber noch kurz zum Titel dieses Abschnitts, von wegen wachsen. Da wir mit new List(5) explizit festgelegt haben, das die Liste 5 Einträge haben soll, wird sich unsere Entwicklungsumgebung mit einem Fehler zu Worte melden, sollten wir versuchen einen 6.ten Eintrag unterzubringen.
In der main() Funktion weisen wir nun unserer "kleinen" den ersten Eintrag zu. Da Dart, und nicht nur Dart, bei einfachen numerischen  Aufzählungen mit 0 als Startwert beginnt, bedienen wir diesen als ersten. [0] bezeichnet man im übrigen als Index, in unserem Beispiel kann dieser Index [..] die Werte 0,1,2,3,4 haben.
Was hat es aber mit dem nicht mehr wachsen auf sich ? Wir können doch jederzeit im Editor new List(5) auf new List(100) ändern ? Klar das geht, solange wir am erstellen des Codes sind. Sobald aber der Code compiliert ist und unser Programm fertig  (so fertig, das wir es kopieren und an einen Bekannten weitergeben könnten) ist die letzte Version von new List() endgültig und keine Funktion /Operation innerhalb unseres Programmes, kann dieser Liste mehr zuweisen, als die Anzahl Einträge die wir mit new definiert haben.


Und eine Liste kann doch wachsen !


Mit einer Liste mit fixer Länge kann man sicher auch Probleme lösen. Häufiger anzutreffen sind aber Situationen, wo wir eben nicht im Vorfeld wissen, wie groß unsere Liste werden wird wird. Wir erstellen zum Beispiel eine Website wo sich deine Freunde zu deiner Geburtstagsparty anmelden können. Vielleicht machen das viele und du hast ein volles Haus, oder wenige, da dein Geburtstag in die Urlaubszeit fällt und viele gar nicht da sind. Wie auch immer, die Anmeldungen kann man in einer Liste speichern, von der man aber nicht weiß, wie groß / klein sie werden wird.
Natürlich kannst Du in Dart eine Liste anlegen, die während der Laufzeit des Programmes wächst.

Mit = [] definieren wir eine leere Liste ohne fixe Länge. In der ersten Zeile der main() Funktion weisen wir ihr noch zwei Zeichenketten zu ,in der nächsten Zeile fügen wir mit der .add Methode noch einen dritten String hinzu.
Alles in Dart ist ein Objekt und .add ist eine Methode des List Objekts.



Aber Achtung !


Es gibt immer Möglichkeiten Fehler zu machen, auch bei so einer, auf jeden Fall im ersten Moment, einfachen Sachen wie einer Liste. Schauen wir uns den Code rechts mal an. Wir definieren eine Liste und weisen Ihr dann Werte zu. Zuerst in einem Rutsch drei Zeichenketten, anschließend mit der .add Methode weitere. DartPad zum Beispiel, wird diesen Code anstandslos verarbeiten. Aber wieso ? Wir haben doch am Beginn eine Liste mit fixen Werten definiert, drei, um genau zu sein ? Die Antwort ist einfach und simpel.
Mit der Zeile meineKleineListe = [...]; haben wir unserer Variablen ein neues Listen Objekt zugewiesen. Diesmal ohne fixe Länge. Entfernen wir die Zeile, wird die Entwicklungsumgebung  einen Fehler ausgeben. Bei Listen mit fixer Länge ist die .add Methode nicht erlaubt.

Und schon sind wir beim Ende dieses Posts..zum nächsten Teil geht es hier lang!






Kommentare

Beliebte Posts aus diesem Blog

Material Design in Flutter Teil 2

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