14

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

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

然而这不起作用:

myarray = (Int64,Int64)[]

但这确实:

Int64[]

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

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

4

2 回答 2

12

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

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)

于 2015-10-21T23:18:31.617 回答
11

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

于 2013-10-17T06:25:27.603 回答