Collections und foreach
Collections und Iteratoren
Eine Collection enthält mehrere Objekte - wie ein gewöhnliches Array. Iteratoren lösen das Problem des Speicherns und Inkrementierens von Array Indizes beim Aufrufen von Objekten.
Syntax:
foreach iterator in collection statements next |
Beispiel:
[foreach $class in $classes if not $class.IsInternal ] class [=$class.Name]; [ endif next] |
Beispiel 2:
[foreach $i in 1 To 3 Write "// Step " & $i & "\n" ‘ Do some work next] |
Die erste Zeile:
$classes ist das globale Objekt von allen Typen. $classes ist eine Collection (Sammlung) von einzelnen Klassenobjekten.
Foreach iteriert durch alle Datenelemente in $classes und führt für die Anweisung den Code der auf die Anweisung folgt, bis zur nächsten Anweisung aus.
In jeder Iteration wird $class dem nächsten Klassenobjekt zugewiesen. Sie arbeiten einfach mit dem Klassenobjekt, anstelle classes[i]->class->Name(), zu verwenden, wie das in C++ der Fall wäre.
Alle Collection-Iteratoren haben die folgenden zusätzlichen Eigenschaften:
Index | der aktuelle Index beginnend mit 0 |
IsFirst | true, wenn das aktuelle Objekt das erste der Collection ist (Index ist 0) |
IsLast | true, wenn das aktuelle Objekt das letzte einer Collection ist |
Current | das aktuelle Objekt (dies ist implizit, wenn es nicht definiert ist und kann weggelassen werden) |
Beispiel:
[foreach $enum in $facet.Enumeration if not $enum.IsFirst ], [ endif ]"[=$enum.Value]"[ next] |