コレクションのイテレーション
Vector や Dict といったコレクションの要素は、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 関数を実装すればいい。
