将数组分配给一行多维数组时出错
Error while assigning array to a row of multidimensional array
我正在写关于 Haxe 的文章,目标是 Neko。今天我遇到了这个问题:
var a:Array<Array<Int>> = new Array<Array<Int>>();
a[1] = [1, 2, 3];
第二行抛出"Invalid array access"异常。同样不可能像这样在行上迭代:
for (i in a[0]) ...
像这样的代码总是可以正常工作,但今天不行。这里可能是什么问题?我尝试访问的单元格和行保证存在(如果谈论索引)。
此问题不是 Neko 特有的:= new Array<Array<Int>>()
仅初始化外部数组 - 等同于写入 = []
。由于它是一个空数组,任何访问都将越界并且 return null
.
对于您的特定示例,= [[], []]
将修复错误(用两个内部数组初始化一个数组)。如果你事先知道你需要的内部数组的数量,array comprehension 是一个方便的初始化方法:
var a:Array<Array<Int>> = [for (i in 0...numInnerArrays) []];
我正在写关于 Haxe 的文章,目标是 Neko。今天我遇到了这个问题:
var a:Array<Array<Int>> = new Array<Array<Int>>();
a[1] = [1, 2, 3];
第二行抛出"Invalid array access"异常。同样不可能像这样在行上迭代:
for (i in a[0]) ...
像这样的代码总是可以正常工作,但今天不行。这里可能是什么问题?我尝试访问的单元格和行保证存在(如果谈论索引)。
此问题不是 Neko 特有的:= new Array<Array<Int>>()
仅初始化外部数组 - 等同于写入 = []
。由于它是一个空数组,任何访问都将越界并且 return null
.
对于您的特定示例,= [[], []]
将修复错误(用两个内部数组初始化一个数组)。如果你事先知道你需要的内部数组的数量,array comprehension 是一个方便的初始化方法:
var a:Array<Array<Int>> = [for (i in 0...numInnerArrays) []];