无法索引2D数组(尝试索引字段'?'(零值))

时间:2012-09-09 17:11:43

标签: multidimensional-array indexing lua corona

我在lua中设置了2个不同的2d阵列。第一个循环

bubbleMat = {}                              --Set Up Table called bubbleMat
for i = 1, 10 do
    bubbleMat[i] = {}                           --1D table with 10 components

    for j = 1, 13 do
        bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 )   --2D Table with 10x13 Matrix each cell given a coordinate as it is iterated through the loop
    end
end

使用此数组,我可以使用

将数组中任何位置的值打印到控制台
print(bubbleMat[x][y]) 

对于任何数量的x和y

由于某种原因,第二个数组不起作用。第二个数组如下

 bubbleMat = {}                             --Set Up Table called     bubbleMat
for j = 1, 13 do
    for i = 1, 10 do
        bubbleMat[i] = {}
        --bubbleMat[i][j] = {}
            if j%2 == 0 then
                bubbleMat[i][j] = bubbleClass.new( (i*62) - 31, (j*62) - 62 )
            else
                bubbleMat[i][j] = bubbleClass.new( (i*62) - 62, (j*62) - 62 )
            end
    end
end

print(bubbleMat)

我不确定为什么我无法索引第二个数组

这是我在控制台中遇到的以下错误

 attempt to index field '?' (a nil value)

提前感谢您的帮助。

基本上我想以下列模式显示存储在二维数组中的气泡网格

0   0    0    0    0    0    0    0    0    0
  0    0    0    0    0    0    0    0    0

而不是将下一行中的气泡直接放在

下面

1 个答案:

答案 0 :(得分:0)

循环for j在外面,循环for i在里面。这不一定是假的,但不寻常。

但是,bubbleMat[i]在最里面的循环中被初始化为{},这显然是错误的。

将初始化移动到最外层循环中,或使用以下语法:

bubbleMat[i] = bubbleMat[i] or {}