第 13 章 イテレータ
イテレータは、ストリームの命令型版です。ストリームのように、イテレータには無限リストを記述する能力があります。しかし、イテレータの成分を含むデー タ構造はありません。代わりに、2つの抽象メソッド next と hasNext を使って、イテレータはシーケンスをたどることができます。
trait Iterator[+A] { def hasNext: Boolean def next: A
}
メソッド next は、次の要素を返します。メソッド hasNext は next で返すべき要素がまだあるかどうかを示します。イテレータは他にもいくつかメソッドをサポートしていますが、それは後ほど説明します。
例として、1 から 100 までの数の平方を表示してみます。
val it: Iterator[Int] = Iterator.range(1, 100) while (it.hasNext) { val x = it.next println(x * x) }