Dart Basic: Iterable Part 2

Im ersten Teil dieser kleinen Serie haben wir begonnen uns mit Iterable zu befassen. Eine Erkenntnis war, das ein Iterable nicht ein Datentyp wie zum Beispiel Integer oder String ist.

Ein Datenobjekt ist dann ein Iterable, wenn auf definierte Art und Weise mit ihm umgegangen werden kann.

Damit ist gemeint: we say that a value is an iterable when your program can iterate over it. In short, an iterable is a value that represents a sequence of one more values.

To iterate over a sequence means to visit each element of the sequence, and do some operation for each element.

Alles klart, denkt man jetzt vielleicht als Anfänger. Wobei eigentlich klar ist nur, was für einen Nutzen wir aus der Tatsache ziehen können, wenn ein Datenobjekt ein Iterable ist.

Das Iterable von Dart ist ein Teil der dart:core library. Auf der Seite zu der Iterable Klasse tritt uns dann die Bezeichnung rechts entgegen.

Iterable<E>class liest sich seltsam, bzw wie kann man das lesen und damit auch aussprechen ? Zuerst aber versuchen wir einmal zu verstehen, was diese Klassenbezeichnung genau aussagen soll

Iterable ist klar, der Buchstabe E ist ein Platzhalter, und class ist selbsterklärend. E kann man am besten übersetzen mit "Element of Type", Element eines Typs also.

Nehmen wir ein Beispiel: Iterable<int> meineSuperDaten

Die Variable meineSuperDaten, ist ein Iterable mit Elementen vom Typ int. Als Folge stehen uns für die deklarierte Variable, die Methoden der Iterable class zur Verfügung.


Wenn man sich diesen kleinen Beispiel Code anschaut, wird man zurecht denken: Aber das ist ja eine Liste ! 
Das ist richtig, aber streng genommen auch falsch. Man muss wissen, das Dart mit dem Begriff von collection arbeitet. In der Library gleichen Namens finden sich einige, spezialisierte Klassen für die Verarbeitung von Datensammlungen.
List, Map etc sind Ableitungen von der Iterable class. Sie stellen jeweils auch andere Methoden zur Verfügung und sind effizienter.
Ob man für eine Liste die Iterable class verwendet oder nicht besser die List class, wird wahrscheinlich vom Anwendungsfall entschieden.


Im Code Beispiel rechts sehen wir Iterable im Zusammenspiel mit einer Klasse. In realen Anwendungen kann eine Klasse aber weitaus komplexer sein. Man ahnt was für Möglichkeiten sich hier eröffnen.

Abschließend möchte ich noch einmal auf Iterable<E> class zurückkommen. Genauer auf den Buchstaben.

An vielen Stellen in den Doc's zu Dart werden wir auf eine ähnliche Schreibweise stoßen. Diese Buchstaben sind Platzhalter und je nach Buchstabe kann man folgendes einsetzen:

  • <E> = Element; z.b. <String>
  •  <T> = Typ; eine Klasse z.b., 
  • <V> =  Value; Wert
  • <K> = Key; Schlüssel
  • <N> = Number;
Das war es für diesen Post. Happy Coding !

Kommentare

Beliebte Posts aus diesem Blog

Material Design in Flutter Teil 2

Flutter -- ohne Dart geht es nicht 2 -- einfache Variablen Typen

Dart Final Const