Magische Variable "it"
Block
Wird im Quellcode mit Tabulator um eine Ebene eingerückt, so wird von einem Block gesprochen.
Jeder Block besitzt für den aktuellen Durchlauf einen eigenen Wert.
Count( 5 )
Print it
Die Count-Schleife zählt von 1 bis 5, führt für jeden Schritt den Block aus und übergibt diesem die jeweilige Zahl.
Mit der magischen Variable "it" kann dieser Wert abgefragt werden.
"it" wird dabei wie eine ganz normale Variable verwendet:
Count( 5 )
xy = it * it + 2
Print xy
Zu beachten ist allerdings, dass der Wert in "it" nur auf dieser einen Ebene gilt.
Bereits eine Ebene tiefer ist schon wieder ein neuer Block mit einen eigenen "it"-Wert.
Und von dort ist kein Zugriff auf die vorherige "it"-Variable möglich!
Count( 5 )
If( it >= 3 )
Print it
Wird der Wert von "it" auch in tieferen Ebenenen benötigt, so ist es sinnvoll diesen einer anderen Variable zuzuweisen:
Count( 5 )
nn = it
If( nn >= 3 )
Print nn
Über die Zuweisung nach rechts lässt sich der Wert bereits bei "Count" zuweisen. Allerdings muss nun ".each" angegeben werden:
Count( 5 ).each => nn
If( nn >= 3 )
Print nn
JayMo-Slim bietet hierzu noch eine sehr kompakte Form: "Kurzform von Zählschleifen (Count)"
Wert ändern
Der magischen Variable "it" kann auch ein neuer Wert zugewiesen werden.
Count( 5 )
Echo it
Echo " --> "
it = it * 3
Print it
Die Ausgabe ist hier:
1 --> 3
2 --> 6
3 --> 9
4 --> 12
5 --> 15
Da der geänderte Wert von "it" weiter an den Stream übergeben wird, ist auch folgendes möglich:
Count( 5 )
Echo it
Echo " --> "
it = it * 3
.print
Die Count-Schleife sendet also eine Zahl zum Block, dort wird diese ausgegeben, danach multipliziert, das Ergebnis zum Stream gesendet und dieses dort ausgegeben (Pseudo-Code):
1 --> Block --> 1 * 3 --> Stream