我正在尝试使用其标识符索引父对象,但它返回nil
而不是对象,因此在执行脚本时会抛出错误。
local mapit = {
...
ground = function(x, y, w, h, data)
...
local id = 0
-- mapit is nil in this block
for i = 0, #mapit.data.ids do
if id ~= i then
id = id + 1
end
end
...
end,
data = {
ids = {}
}
...
}
local myRect = mapit.ground(400, 100, 600, 100)
答案 0 :(得分:3)
在Lua中,本地人不在其初始化程序的右侧,因此您的闭包会引用名为mapit
的全局。
首先声明本地,然后分配给它。
local mapit
mapit = { ... }