Lua 中如何索引父对象?

我正尝试通过使用其标识符来索引父对象,但它返回的是 nil 而不是对象,因此在执行脚本时会引发错误。

local mapit = {
    ...
    ground = function(x, y, w, h, data)
        ...
        local id = 0
        -- 在此代码块中,mapit 为 nil
        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)
点赞
用户646619
用户646619

在 Lua 中,在其初始化器的右侧,局部变量不处于作用域中,因此您的闭包引用了一个名为 mapit 的全局变量。

先声明局部变量,然后再将其赋值。

local mapit
mapit = { ... }
2016-07-12 00:18:44