Range
Eine Range repräsentiert einen Bereich von A nach B. Verwendet werden können Zahlen und Zeichen.
r = 4..9
Start und Ende des Bereiches wird mit zwei Punkten verbunden. In diesem Beispiel handelt es sich um einen Bereich von 4 bis 9.
Alternativ kann eine Range mit dem Typ-Namen direkt erzeugen werden:
r = Range( 4, 9 )
Priotität
Die Range wird vor allen weiteren Funktionen erzeugt. Somit wird bei folgendem Beispiel zweimal "4..9" ausgegeben.
( 4..9.print ).print
Arten
Neben Ganzzahlen sind ebenso Zeichen und Dezimal-Zahlen möglich:
( 'a'..'h' ).each.print
Range( 'a', 'h' ).each.print
( 2.5..8.7 ).each.print
Range( 2.5, 8.7 ).each.print
Auch eine absteigende Range ist möglich:
123..88
'z'..'a'
Schleife
Eine Range lässt sich als Schleife verwenden:
4..9
it.print
Oder:
Range(4, 9).each.print
Verbindung zu Count-Schleifen
Eine Range kann auch an eine Count-Schleife als Argument übergeben werden:
Count( 4..9 ).each.print
Ein Stepping lässt sich hier ebenso festlegen:
Count( 4..9, 2 ).each.print
Weitere Funktionen
Die Funktion "contains" prüft, ob sich ein Element in der Range befindet:
Range( 4, 9 ).contains(5)
'f'..'o'.contains('x')
Eine weitere schöne Funktion ist, aus der Range eine Liste zu generieren:
'x'..'p'.toList.print
Auch lässt sich aus einer Range ein String generieren:
( 'a'..'h' ).calcStr.print
Range( 'x', 'c' ).calcStr.print