我对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)
有人可以用简单的语言解释这里可能有什么问题吗?
答案 0 :(得分:1)
您没有显示整个脚本,但很明显storage
值会在初始化和for item in storage do
之间的某处重置,因为如果它保留了值,则会出现不同的错误:attempt to call a table value
。
您需要在循环中使用ipairs
或pairs
函数 - for key, item in pairs(storage) do
- 但您首先需要修复重置storage
的值。