区間型
Range
オブジェクトの最も基本的な使い方は、イテレータとしての使用です。
for! 0..9, i =>
print! i
Pythonと違い、末尾の数字は含まれることに注意してください。
しかし、Range
オブジェクトの使い道はこれだけではありません。型としても使うことが出来ます。このような型を区間型(Interval type)と呼びます。
i: 0..10 = 2
Nat
型は0..<Inf
と等価な型で、Int
とRatio
型は-Inf<..<Inf
と等価な型です。
0..<Inf
は0.._
と書くことも出来ます。_
は、Int
型の任意のインスタンスを意味します。
イテレータとしても使えるため、10..0
などのように逆順で指定することも出来ますが、
<..
, ..<
, <..<
の向きは逆転できません。
a = 0..10 # OK
b = 0..<10 # OK
c = 10..0 # OK
d = 10<..0 # Syntax error
e = 10..<0 # Syntax error
f = 10<..<0 # Syntax error
範囲演算子(range operator)は、Ord
な不変型であるならば数値以外の型にも使用できます。
Alphabet = "A".."z"