传递2d数组在Lua中运行

时间:2009-10-10 21:58:14

标签: function lua

可以将2d数组作为参数传递给函数吗? 我初始化了一个这样的数组:

tab={}
for i=1, 10 do
    tab[i]={}
    for z=1, 10 do
        tab[i][z]= 0
    end
end

我的功能如下:

function foo(data)
    ...
    x = data[i][z] -- here i got error
    ...
end

给出了错误消息attempt to index field '?' (a nil value)

声明并初始化所有变量。

3 个答案:

答案 0 :(得分:4)

如果正确初始化,您的代码应该有效。

例如,下面的代码示例将输出3:

function foo(data)
  local i, z = 1, 2
  print(data[i][z])
end

local tab={}
for i=1, 10 do
  tab[i]={}
  for z=1, 10 do
    tab[i][z]= i + z
  end
end

foo(tab)

答案 1 :(得分:1)

也许你可以分享其余的代码?以下运行没有错误:

tab={}
for i=1, 10 do
    tab[i]={}
    for z=1, 10 do
        tab[i][z]= 0
    end
end

function foo(data)
    print(data[3][2])
end

foo(tab)

答案 2 :(得分:0)

  

给出错误消息尝试索引字段'?' (零值)

我在改变某些变量的元数时遇到了这样的错误。