Collections et foreach
Collections et itérateurs
Une collection contient plusieurs objets - comme un array ordinaire. Les itérateurs résolvent le problème du stockage et l’incrémentation des indexes array lorsque vous accédez aux objets.
Syntaxe :
foreach iterator in collection statements next |
Exemple :
[foreach $class in $classes if not $class.IsInternal ] class [=$class.Name]; [ endif next] |
Exemple 2 :
[foreach $i in 1 To 3 Write "// Step " & $i & "\n" ‘ Do some work next] |
Dans la première ligne :
$classes est l’ objet global de tous les types générés. Il s’agit d’une collection d’objets de classe uniques.
Foreach passe à travers tous les items dans $classes, et exécute le code suivant l’instruction, jusqu’à l’instruction next, pour chacun d’entre eux.
Dans chaque itération, $class est attribué à l’objet de classe suivant. Il vous suffit de travailler avec l’objet de classe au lieu d’utiliser classes[i]->Name() comme pour un travail en C++.
Tous les itérateurs de collection possèdent les propriétés supplémentaires suivantes:
Index | L’index suivant, en commençant avec 0 |
IsFirst | true si l’objet actuel est le premier de la collection (index est 0) |
IsLast | true si l’objet actuel est le derner de la collection |
Current | L’objet actuel (cela est implicite s’il n’est pas spécifié et peut être exclu) |
Exemple :
[foreach $enum in $facet.Enumeration if not $enum.IsFirst ], [ endif ]"[=$enum.Value]"[ next] |