初始化和使用全局表

时间:2015-01-19 14:52:57

标签: lua lua-table

我对Lua非常陌生,我尝试在程序开始时全局初始化一个表。在顶部,我有:

storage = {}

然后,我想在同一文件中的函数内迭代此表中的元素。一个例子是:

local output
for item in storage do
    output = output .. item
end
return output

在这种情况下,我得到:

attempt to call a nil value

for开头的行。

我也试过打印storage[1]。在这种情况下,我得到:

attempt to index local 'storage' (a nil value)

有人可以用简单的语言解释这里可能有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您没有显示整个脚本,但很明显storage值会在初始化和for item in storage do之间的某处重置,因为如果它保留了值,则会出现不同的错误:attempt to call a table value

您需要在循环中使用ipairspairs函数 - for key, item in pairs(storage) do - 但您首先需要修复重置storage的值。