初始化和使用全局 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
.
您需要在循环中使用 ipairs
或 pairs
函数 -- for key, item in pairs(storage) do
-- 但您首先需要修复重置 storage
值的任何内容。
我是 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
.
您需要在循环中使用 ipairs
或 pairs
函数 -- for key, item in pairs(storage) do
-- 但您首先需要修复重置 storage
值的任何内容。