创建Julia元组

创建Julia元组,julia,Julia,当我试图理解Julia中的元编程时:这段代码中分别缺少了什么,我如何调用元组的正确构造函数 x = (:a, :b) p = quote f_a = 3 f_b = 4 y = Tuple($([Symbol("f_", k) for k in x]...)) end 这将生成以下代码: quote f_a = 3 f_b = 4 y = Tuple(f_a, f_b) end 这当然是错误的,因为元组没有合适的构造函数。我希望y最终成为一个元

当我试图理解Julia中的元编程时:这段代码中分别缺少了什么,我如何调用
元组的正确构造函数

x = (:a, :b)
p = quote
    f_a = 3
    f_b = 4
    y = Tuple($([Symbol("f_", k) for k in x]...))
end
这将生成以下代码:

quote
    f_a = 3
    f_b = 4
    y = Tuple(f_a, f_b)
end
这当然是错误的,因为元组没有合适的构造函数。我希望
y
最终成为一个元组,但我还不知道如何获得额外的括号

换句话说,此代码中缺少什么:

x = (:a, :b)

p = quote
    f_a = 3
    f_b = 4
    y = ($([Symbol("f_", k) for k in x]...))
end
eval(p)
@assert isa(y, Tuple)
你可以用逗号

x = (:a, :b)

p = quote
    f_a = 3
    f_b = 4
    y = ($([Symbol("f_", k) for k in x]...),) # added a comma here
end
eval(p)
@assert isa(y, Tuple)
以下内容可能会有所启发

julia> (3)
3

julia> (3,)
(3,)

julia> typeof(ans)
Tuple{Int64}