发电机理解

生成器理解遵循与数组理解类似的格式,但使用括号 () 而不是方括号 []

(expression for element = iterable)

这样的表达式返回一个 Generator 对象。

julia> (x^2 for x = 1:5)
Base.Generator{UnitRange{Int64},##1#2}(#1,1:5)

函数参数

生成器理解可以作为函数的唯一参数提供,而不需要额外的括号集。

julia> join(x^2 for x = 1:5)
"1491625"

但是,如果提供了多个参数,则生成器理解需要其自己的括号集。

julia> join(x^2 for x = 1:5, ", ")
ERROR: syntax: invalid iteration specification

julia> join((x^2 for x = 1:5), ", ")
"1, 4, 9, 16, 25"