For Each Loop in Dart
Dart für Anfänger 2.0 For Each Loop 1
Im letzten Post in dieser kleinen Reihe hatten wir uns mit if, for und for..in beschäftigt.
Die For...Each Schleife ist eine bequeme Möglichkeit eine Sammlung von Daten zu bearbeiten. Bevor wir das testen können, sollten wir eine Sammlung erstellen und zum Einstieg noch einmal die for(..) Variante betrachten. Bitte beachten Sie: Alle Code Beispiele in diesem Post sind mit DartPad lauffähig. Beispiel:
class StaeDte { // 1 StaeDte(this.name,this.usa); String name; bool usa; } void main() { var stadt1 = StaeDte('Hamburg',false); // 2 var stadt2 = StaeDte('Köln', false); var stadt3 = StaeDte('München',false); var stadt4 = StaeDte('Düsseldorf',false); var sammlung = [stadt1,stadt2,stadt3,stadt4]; // 3 for( int s=0; s<sammlung.length;s++){ // 4 print('Die Stadt ${sammlung[s].name} ist in den USA ? ${sammlung[s].usa}'); } }
2.Sie erstellen basierend auf der Klasse StaeDte, vier Objekte.
3. Diese vier Objekte werden in eine Liste gepackt und der Variablen sammlung zugewiesen. Beachten Sie die rechteckigen Klammern !
4. Die for(..) Schleife sollten Sie kennen, falls nicht finden Sie hier Informationen. Die eigentliche Neuerung ist sammlung.length. Diese Eigenschaft des Listenobjekts benutzen wir als Abbruchkriterium der Schleife.
Nun ist der Code oben keine Hexerei. Wir verwenden mit der for(..){...} Schleife ein alleinstehendes Sprachkonstrukt von Dart. Im Schleifenkopf (..) definieren wir die Variable, legen die Abbruchbedingung fest und sorgen dafür das die Variable hochgezählt wird. Im Codeblock {...} greifen wir auf unsere Liste zu und drucken sie in die Konsole. Foreach ist da anders angelegt.
ForEach
Die Schleife ForEach wird immer über das Listen oder Map Objekt aufgerufen. Hier der abgeänderte Code:
class StaeDte { StaeDte(this.name,this.usa); String name; bool usa; } void main() { var stadt1 = StaeDte('Hamburg',false); var stadt2 = StaeDte('Köln', false); var stadt3 = StaeDte('München',false); var stadt4 = StaeDte('Düsseldorf',false); var sammlung = [stadt1,stadt2,stadt3,stadt4]; sammlung.forEach((inhalt) =>print('Die Stadt${inhalt.name} ist in den USA ? ${inhalt.usa}')); // 1 }
(inhalt)=>print(....) ist dabei eine sogenannte Fat Arrow Variante einer anonymen Funktion.
Anonym deshalb, da in der Regel Funktionen in Dart vor dem ersten Aufruf im Code erstellt sein müssen. Mit Fat Arrow ist eine Kurzschreibweise gemeint. Sehen wir uns die forEach Schleife in der langen Schreibweise an:
sammlung.forEach((StaeDte inhalt){ print('Die Stadt ${inhalt.name} ist in den USA ? ${inhalt.usa}'); });
Kommentare
Kommentar veröffentlichen