可以将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)
声明并初始化所有变量。
答案 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)
给出错误消息尝试索引字段'?' (零值)
我在改变某些变量的元数时遇到了这样的错误。