在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")