将数组分配给多维数组行时出错



我正在写Haxe并针对Neko。今天我遇到了这个问题:

var a:Array<Array<Int>> = new Array<Array<Int>>();
a[1] = [1, 2, 3];

第二行引发"数组访问无效"异常。也不可能像这样迭代行:

for (i in a[0]) ...

像这样的代码总是可以正常工作,但今天的代码不是。这里可能有什么问题? 我尝试访问的单元格和行保证存在(如果谈论索引(。

这个问题不是特定于 Neko 的:= new Array<Array<Int>>()只初始化外部数组 - 它相当于编写= [] 。由于它是一个空数组,因此任何访问都将越界并返回null

对于您的特定示例,= [[], []]将修复错误(使用两个内部数组初始化数组(。如果您事先知道所需的内部数组数量,数组理解是进行初始化的便捷方法:

var a:Array<Array<Int>> = [for (i in 0...numInnerArrays) []];

相关内容

  • 没有找到相关文章