Collections und foreach

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Code Generator > SPL (Spy Programming Language) >

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]

 


© 2019 Altova GmbH