「イテレーター」の版間の差分
imported>GamerBook 編集の要約なし |
|||
| (3人の利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
'''イテレーター''' (Iterator) とは、[[プログラミング言語]]における[[配列]]や、それに類似する各種[[コレクション]]などの[[データ構造]]において、その各要素への反復的なアクセス方法を抽象化したものである。反復するためのものの意味で'''反復子'''(はんぷくし)と訳される。'''繰返子''' | '''イテレーター''' (Iterator) とは、[[プログラミング言語]]における[[配列]]や、それに類似する各種[[コレクション]]などの[[データ構造]]において、その各要素への反復的なアクセス方法を抽象化したものである。反復するためのものの意味で'''反復子'''(はんぷくし)と訳される。'''繰返子'''(くりかえし)という妙訳もある。また[[.NET Framework]]の世界では'''列挙子'''([[列挙型]]と名前が似てるが別物)という。 | ||
== 概要 == | |||
イテレーターをもちいて反復的なアクセス方法を抽象化することにより、たとえ[[データ構造]]が異なる場合でも、少なくとも[[繰り返し処理]]の記述をほぼ同一にすることができ、簡潔明瞭に[[ソースコード]]を記述できるようになる。 | |||
実際の[[プログラミング言語]] | 実際の[[プログラミング言語]]ではイテレーターは[[オブジェクト]]または[[文法]]などとして現れる。 | ||
[[プログラミング言語]] | [[プログラミング言語]]の仕様にイテレーターを便利に扱う機能がない場合は[[オブジェクト]]を用いて強引に実装するのが一般的である。 | ||
たとえば[[C++]]やJ2SE 1.4までの古い[[Java]]がこれに該当する。 | |||
一方で[[プログラミング言語]]の仕様にイテレーターを便利に扱うための[[文法]]や[[マクロ]]([[プリプロセッサー]])が用意されているものもあり、それらを使うことにより簡潔明瞭に[[ソースコード]]を書くことができる。たとえば[[C Sharp|C#]]であれば[[C Sharp/foreach 文|foreach 文]]がそれにあたり、イテレーターオブジェクトと[[C Sharp/while 文|while 文]]を使った記述にくらべ、非常に簡潔明瞭に記述することができる。 | |||
== 主なプログラミング言語のイテレーター == | |||
* [[C Sharp/イテレーター|C#/イテレーター]] | |||
== 関連項目 == | == 関連項目 == | ||
* [[データ構造]] | * [[データ構造]] | ||
* [[コレクション]] | * [[コレクション]] | ||
* [[ループ変数]] | |||
== 参考文献 == | == 参考文献 == | ||