多维数组理解

嵌套的 for 循环可用于迭代许多独特的迭代。

result = []
for a = iterable_a
    for b = iterable_b
        push!(result, expression)
    end
end

类似地,可以将多个迭代规范提供给阵列理解。

[expression for a = iterable_a, b = iterable_b]

例如,以下可用于生成 1:31:2 的笛卡尔积。

julia> [(x, y) for x = 1:3, y = 1:2]
3×2 Array{Tuple{Int64,Int64},2}:
 (1,1)  (1,2)
 (2,1)  (2,2)
 (3,1)  (3,2)

扁平化的多维数组理解类似,只是它们失去了形状。例如,

julia> [(x, y) for x = 1:3 for y = 1:2]
6-element Array{Tuple{Int64,Int64},1}:
 (1, 1)
 (1, 2)
 (2, 1)
 (2, 2)
 (3, 1)
 (3, 2)

是上述的扁平变体。句法差异在于使用了额外的 for 而不是逗号。