「イテレーター」の版間の差分

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

2012年11月9日 (金) 06:56時点における最新版

イテレーター (Iterator) とは、プログラミング言語における配列や、それに類似する各種コレクションなどのデータ構造において、その各要素への反復的なアクセス方法を抽象化したものである。反復するためのものの意味で反復子(はんぷくし)と訳される。繰返子(くりかえし)という妙訳もある。また.NET Frameworkの世界では列挙子列挙型と名前が似てるが別物)という。

概要[編集 | ソースを編集]

イテレーターをもちいて反復的なアクセス方法を抽象化することにより、たとえデータ構造が異なる場合でも、少なくとも繰り返し処理の記述をほぼ同一にすることができ、簡潔明瞭にソースコードを記述できるようになる。

実際のプログラミング言語ではイテレーターはオブジェクトまたは文法などとして現れる。 プログラミング言語の仕様にイテレーターを便利に扱う機能がない場合はオブジェクトを用いて強引に実装するのが一般的である。 たとえばC++やJ2SE 1.4までの古いJavaがこれに該当する。

一方でプログラミング言語の仕様にイテレーターを便利に扱うための文法マクロプリプロセッサー)が用意されているものもあり、それらを使うことにより簡潔明瞭にソースコードを書くことができる。たとえばC#であればforeach 文がそれにあたり、イテレーターオブジェクトとwhile 文を使った記述にくらべ、非常に簡潔明瞭に記述することができる。

主なプログラミング言語のイテレーター[編集 | ソースを編集]

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]


外部リンク[編集 | ソースを編集]