ClassicIterator
GoFのデザパタに出てくるような、古典的イテレータメソッドを持つクラスを追加することにしました。
イテレータに対し、classicメソッドを呼び出すと元のイテレータがClassicIteratorに包まれて取得できます。
iter: 3.times.classic; for(; !iter.is_done; iter.next){ iter.current.p; } //=> 0 //=> 1 //=> 2
ClassicIterator::next: method
次の要素に進む
ClassicIterator::current: method
現在の要素を返す
ClassicIterator::is_done: method
イテレータが終了したらtrue
ClassicIterator::has_next: method
イテレータが終了してなかったらtrue