迭代器

迭代器是一类为 for ... in 准备的,用于更方便控制遍历的工具。 Iterators 模块位于 Base.Iterators

eachindex

eachindex 通常用于得到数组索引的合适遍历工具。它比使用 1:length(A) 更有兼容性。

enumerate

enumerate 遍历物品时,得到的值是一对 (i, v),其中 i 是从 1 开始的计数器,v 是正常遍历物品得到的值。

zip

zip 可用于合并多个可遍历的物品,一直遍历直到其中一个到达末尾

julia> z = zip(1:3, "abcde")
zip(1:3, "abcde")

julia> length(z)
3

julia> first(z)
(1, 'a')

julia> collect(z)
3-element Vector{Tuple{Int64, Char}}:
 (1, 'a')
 (2, 'b')
 (3, 'c')

filter

filter 用于生成满足特定要求的迭代器,需注意在使用时不与导出的另一个 filter 混淆

julia> f = Iterators.filter(isodd, [1,2,3,4,5])
Base.Iterators.Filter{typeof(isodd), Vector{Int64}}(isodd, [1, 2, 3, 4, 5])

julia> collect(f)
3-element Vector{Int64}:
 1
 3
 5