【问题标题】:Create Julia Tuple创建 Julia 元组
【发布时间】:2018-11-26 11:27:57
【问题描述】:

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

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)

【问题讨论】:

    标签: julia


    【解决方案1】:

    你可以用逗号,

    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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 2018-09-19
      相关资源
      最近更新 更多