Lua:从函数中获取函数外部的本地变量

我想在调用某个函数(getlenv)时获取环境中的所有本地变量(debug.getlocal),但是当我调用此函数时,它仅获取函数内部的本地变量而不是函数外部的本地变量。这可行吗? 如果可以,如何操作?

我现在拥有代码

function getlenv()
    local i = 1
    repeat
        local k, v = debug.getlocal(1, i)
        if k then
            print(k, v)
            i = i + 1
        end
    until nil == k
end

getlenv()
点赞
用户11028390
用户11028390

已解决,我只是太蠢了,只需要将

local k, v = debug.getlocal(1, i)

改为

local k, v = debug.getlocal(2, i)

就能获取到函数外的局部变量 o_0

2019-09-18 17:40:01