如何在Lua中索引父对象?

时间:2016-07-12 00:15:50

标签: lua

我正在尝试使用其标识符索引父对象,但它返回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)

1 个答案:

答案 0 :(得分:3)

在Lua中,本地人不在其初始化程序的右侧,因此您的闭包会引用名为mapit的全局。

首先声明本地,然后分配给它。

local mapit
mapit = { ... }