我无法弄清楚如何初始化一个空的元组数组。 manual说:
值元组的类型是值类型的元组...因此,类型元组可以在预期类型的任何地方使用。
然而这不起作用:
myarray = (Int64,Int64)[]
但这样做:
Int64[]
在空方括号前面看起来似乎是一种类型,但是元组类型不起作用。这种<type>[]
语法是我能找到获得空类型数组的唯一方法(其他方法似乎产生了一堆#undef
值)。是唯一的方法,如果是,我怎么能用元组键入数组?
BTW,我的用例是创建一个最初不确定长度的数组,并将元组推入循环中。
答案 0 :(得分:10)
你可以为Array((Int,Int),0)
做这件事。将方法添加到getindex
以使(Int,Int)[]
工作可能是可行的,但我不确定它是否值得。随意打开一个问题。
答案 1 :(得分:7)
对于寻找最新解决方案的人,
Array{Tuple{Int, Int}}(0)
适用于v0.4
同样详细的方式0-element Array{Tuple{Int64,Int64},1}
也适用于v0.4。
创建Array{Tuple{Int, Int}}(undef, 0)
请注意,在v1.0中,您需要编写
self.appliancesInGroupGridOpts = {
angularCompileRows: true,
enableColResize : true,
rowData: null,
checkboxSelection: true,
enableSorting: true,
columnDefs: [
{
valueGetter: 'data.name',
headerName: $filter('translate')('APPLIANCE.NAME'),
suppressSizeToFit : true,
template: '<span class="appliance-name">{{data.name}}</span>',
checkboxSelection: true,
width: 200
} ,
{
valueGetter: 'data.updated',
headerName: $filter('translate')('APPLIANCE_GROUP.PUBLISH.MODIFICATION_TIME'),
suppressSizeToFit : true,
template: '<span class="appliance-updated">{{data.updated}}</span>',
checkboxSelection: true,
width: 200
}
] ,