如何访问废弃的函数参数?

时间:2018-07-25 09:41:22

标签: lua

在Lua中,调用带有多余参数的函数只会丢弃那些参数。 debug库是否有可能访问这些废弃的参数? (我不是在寻找可变参函数)

function test()
    local info = debug.getinfo(1, "u")
    print(info.nparams) -- just 0 :(
    -- how to access the discarded arguments?
end

test(42, "Hello World!", 3.14)

编辑:正如Luiz-Henrique在评论中告诉我的那样,这在标准Lua中是不可能的。他还要求提供更多的背景信息,因此我将重复我试图解决的问题以回答另一个问题。在另一个问题中,OP希望从加载程序函数内部访问模块package.preload中具有的名称,但不要将其作为参数,因为它由require传递。我不知道为什么,但这使我想到了是否可以访问废弃参数的问题。

package.preload["test"] = function()
    local info = debug.getinfo(1, "u")
    print(info.nparams) -- just 0 :(
    -- how to access the name without taking it as an argument
    return {}
end

require("test")

0 个答案:

没有答案