コレクションのイテレーション

2026年3月27日
1 分

VectorDict といったコレクションの要素は、for を使って次のようにひとつずつ取り出して処理することができる。

for x in collection
  # 何かの処理
end

Julia は、上のコードを次のように変換する。

next = iterate(collection)
while next != nothing
  (x, state) = next
  # 何かの処理
  next = iterate(collection, state)
end

iterate 関数は、コレクションの「次の要素」(x)と「コレクションの状態を表すオブジェクト」(state)のタプルを返す。

state はコレクションの次の要素を取り出すために必要で、どんなオブジェクトでも構わない。 自分で定義した何かのコレクション型にたいしてイテレーションするには、そのコレクション型のための iterate 関数を実装すればいい。