我正在写Haxe并目标定位在Neko上。今天我遇到了这个问题:
var a:Array<Array<Int>> = new Array<Array<Int>>();
a[1] = [1, 2, 3];
第二行代码会抛出“无效的数组访问”异常。同时,使用这种方式遍历行是不可能的:
for (i in a[0]) ...
以前的代码一直都能正常运行,但今天的代码却不能。可能是什么问题呢?如果是关于索引的话,我要访问的单元格和行是保证存在的。
我正在写Haxe并目标定位在Neko上。今天我遇到了这个问题:
var a:Array<Array<Int>> = new Array<Array<Int>>();
a[1] = [1, 2, 3];
for (i in a[0]) ...
以前的代码一直都能正常运行,但今天的代码却不能。可能是什么问题呢?如果是关于索引的话,我要访问的单元格和行是保证存在的。
= new Array<Array<Int>>()
只初始化了外部数组 - 它等同于写= []
。由于它是一个空数组,任何访问都会越界并返回null
。= [[], []]
将修复错误(初始化具有两个内部数组的数组)。如果您事先知道所需的内部数组数量,则数组推导是一种方便的初始化方式:var a:Array<Array<Int>> = [for (i in 0...numInnerArrays) []];