多維陣列理解
巢狀的 for
迴圈可用於迭代許多獨特的迭代。
result = []
for a = iterable_a
for b = iterable_b
push!(result, expression)
end
end
類似地,可以將多個迭代規範提供給陣列理解。
[expression for a = iterable_a, b = iterable_b]
例如,以下可用於生成 1:3
和 1: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
而不是逗號。