C++相談室 part120 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0475デフォルトの名無しさん
2015/11/13(金) 02:02:36.76ID:GGTDEwnnenumuratorとiteratorの両方が混在してる言語を見てみると…
Javaの場合は既に使われているEnumerationのAPIを変えることなく改善版が用意された
https://docs.oracle.com/javase/jp/6/api/java/util/Iterator.html
> public interface Iterator<E>
> コレクションの反復子です。反復子は、Java Collections Framework において Enumeration の代わりとなります。
> 反復子は、次の 2 つの点で列挙と異なります。1) 反復子を使用すると、明確なセマンティクスに基づく繰り返し処理の間に、
> 呼び出し側は基本となるコレクションから要素を削除できる。2) メソッド名が改良されている
Rubyの場合は登場時からブロック付きメソッドを「イテレータ」と表現してた経緯があり
外部イテレータを提供する(?)ときにこの名前が使われた
http://docs.ruby-lang.org/ja/1.9.3/class/Enumerator.html
> 要約
> each 以外のメソッドにも Enumerable の機能を提供するためのラッパークラスです。 また、外部イテレータとしても使えます。
迷いのない言語には片方しか用意されてない
両方を区別して使い分ける必要が無いから
■ このスレッドは過去ログ倉庫に格納されています