发电机理解
生成器理解遵循与数组理解类似的格式,但使用括号 ()
而不是方括号 []
。
(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"