区間型

badge

Rangeオブジェクトの最も基本的な使い方は、イテレータとしての使用です。

for! 0..9, i =>
    print! i

Pythonと違い、末尾の数字は含まれることに注意してください。

しかし、Rangeオブジェクトの使い道はこれだけではありません。型としても使うことが出来ます。このような型を区間型(Interval type)と呼びます。

i: 0..10 = 2

Nat型は0..<Infと等価な型で、IntRatio型は-Inf<..<Infと等価な型です。 0..<Inf0.._と書くことも出来ます。_は、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"