Julia 语法:"..."调用外部表达式



给定此数据:

data   = ["red", "blue", "green"]
counts = [2000, 2000, 1]

为什么我可以进行

[fill("red", 2000)..., fill("blue", 2000)..., fill("green", 1)...]

但不是

[fill(data[i], counts[i])... for i in 1:3]
syntax: "..." expression outside call around

p.s.

我知道这是可能的,只是感觉不太优雅:


cat([fill(data[i], counts[i]) for i in 1:3]..., dims=1)

由于错误消息说...只允许在函数调用中使用,请参阅https://docs.julialang.org/en/v1/manual/faq/#...-在函数调用中将一个参数拆分为多个不同的参数。

但是,请注意,您可以这样做,例如:

reduce(vcat, fill(data[i], counts[i]) for i in 1:3)

(这不必要地分配fill,但写入时间相对较短(

最新更新