初始化和使用全局 table

Initialising and using a global table

我是 Lua 的新手,我正试图在我的程序一开始就全局初始化一个 table。在顶部,我有:

storage = {}

然后,我想遍历同一文件中此 table 内部函数中的元素。一个例子是:

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)

谁能用简单的术语解释一下这里可能出了什么问题?

您没有显示整个脚本,但很明显 storage 值在初始化和在 for item in storage do 中使用之间的某处被重置,因为如果它保留该值,您将得到不同的错误:attempt to call a table value.

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