使用参数转储lua func

使用参数转储lua func,lua,dump,Lua,Dump,是否可能转储包含函数参数的Lua表? 如果是,我怎么做 我已经成功地转储了带有地址的表和函数,但是我还没有找到获取函数args的方法,我尝试了不同的方法,但是没有成功 所以我想接收它们,包括表和函数,以及函数的参数。 输出应该是这样的:函数JumpHigh(播放器,高度) 我不知道这是否可能,但会非常方便。表只存储值 如果有函数存储在表中,那么它只是一个函数体,没有参数。若应用了参数,表将只存储该调用的最终结果 也许你说的是闭包——从其他函数返回的函数,在词汇闭包中从顶级函数捕获一些参数?然后查

是否可能转储包含函数参数的Lua表? 如果是,我怎么做

我已经成功地转储了带有地址的表和函数,但是我还没有找到获取函数args的方法,我尝试了不同的方法,但是没有成功

所以我想接收它们,包括表和函数,以及函数的参数。 输出应该是这样的:函数JumpHigh(播放器,高度)


我不知道这是否可能,但会非常方便。

表只存储值

如果有函数存储在表中,那么它只是一个函数体,没有参数。若应用了参数,表将只存储该调用的最终结果

也许你说的是闭包——从其他函数返回的函数,在词汇闭包中从顶级函数捕获一些参数?然后查看
debug.getupvalue()
函数以检查闭包的内容

这是你要问的吗

local function do_some_action(x,y)
    return function()
        print(x,y)
    end
end

local t = {
    func = do_some_action(123,478)
}

-- only function value printed
print "Table content:"
for k,v in pairs(t) do
    print(k,v)
end

-- list function's upvalues, where captured arguments may be stored
print "Function's upvalues"
local i = 0
repeat
    i = i + 1
    local name, val = debug.getupvalue(t.func, i)
    if name then
        print(name, val)
    end
until not name
请注意,存储的upvalues不是顶级函数的参数所必需的。它可能是某个局部变量,存储内部函数的预计算值


还要注意的是,如果脚本被预编译成带有剥离调试信息的Lua字节码,那么您将不会得到upvalues的名称,这些名称将是空的。

您真正想解决的问题是什么?使用代码来解释您自己会更清楚。