Lua功能范围

时间:2011-06-18 08:09:13

标签: lua

如果我喜欢这个,我会收到错误。我该怎么办?

local function one()
    local function two()
        local function three()
            callMe() -- got error here
        end
    end
end

local function callMe()
    print ("can't call :(")
end

callMe()

2 个答案:

答案 0 :(得分:6)

必须在使用之前声明

本地人:

local callMe
local function one()
    local function two()
        local function three()
            callMe() -- got error here
        end
    end
end
function callMe()
    print ("can't call :(")
end
callMe()

答案 1 :(得分:4)

除了()onetwo之类的three,就像Bart Kiers所说的那样,调用three()会出错{{1 }}是callMe范围之外的局部函数,因此它不知道该函数。