在Julia中初始化一个空元数组

Sea*_*sey 12 julia

我无法弄清楚如何初始化一个空的元组数组.该手册说:

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

然而,这不起作用:

myarray = (Int64,Int64)[]
Run Code Online (Sandbox Code Playgroud)

但这样做:

Int64[]
Run Code Online (Sandbox Code Playgroud)

在空方括号前面看起来似乎是一种类型,但是元组类型不起作用.这种<type>[]语法是我能找到获得空类型数组的唯一方法(其他方法似乎产生了一堆#undef值).是唯一的方法,如果是这样,我怎么能用元组键入数组?

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

Ste*_*ski 10

你可以做到Array((Int,Int),0)这一点.添加方法来getindex制作(Int,Int)[]工作可能是可行的,但我不确定它是否值得.随意打开一个问题.

  • 谢谢!您的解决方案有效,我已经添加了问题.我认为这绝对值得 - 当实际的语言语法与手册所说的不一致时,真的很混乱. (2认同)

col*_*ang 7

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

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)