【问题标题】:Initialize an Empty Array of Tuples in Julia在 Julia 中初始化一个空的元组数组
【发布时间】:2018-11-17 23:19:16
【问题描述】:

我不知道如何初始化一个空的元组数组。 manual 说:

值元组的类型是值类型的元组......因此,类型元组可以在任何需要类型的地方使用。

但这不起作用:

myarray = (Int64,Int64)[]

但这确实:

Int64[]

在空方括号前面似乎需要一个类型,但元组类型不起作用。这个<type>[] 语法是我能找到的获得空类型数组的唯一方法(其他方法似乎会产生一堆#undef 值)。是唯一的方法吗,如果是,我怎样才能输入带有元组的数组?

顺便说一句,我的用例是创建一个初始长度不确定的数组,并在循环中将元组推送到它上面。

【问题讨论】:

    标签: julia


    【解决方案1】:

    对于寻求最新解决方案的人,

    Tuple{Int, Int}[] 适用于 v0.4

    Array{Tuple{Int, Int}}(0) 的详细方式也适用于 v0.4。

    它创建一个0-element Array{Tuple{Int64,Int64},1}

    请注意,在 v1.0 中您需要编写

    Array{Tuple{Int, Int}}(undef, 0)

    【讨论】:

      【解决方案2】:

      你可以为此做Array((Int,Int),0)。向getindex 添加方法以使(Int,Int)[] 工作可能是可行的,但我不确定这是否值得。随意打开一个问题。

      【讨论】:

      • 谢谢!您的解决方案有效,我已经添加了问题。我认为这绝对值得——当实际的语言语法与手册所说的不一致时,这真的很令人困惑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      相关资源
      最近更新 更多