gpt4 book ai didi

lua - 从函数外部获取函数的参数名称列表

转载 作者:行者123 更新时间:2023-12-04 21:52:05 26 4
gpt4 key购买 nike

我正在为我开发的 Lua 库生成一些(非 html)文档。我将手动生成文档,但如果可能的话,我会很感激某种自动化(即为每个函数生成骨架,以便我可以填充它们)

我想知道 lua 是否有办法从函数外部知道函数采用的参数名称。

例如,有没有办法在 Lua 中做到这一点?

function foo(x,y)
... -- any code here
end

print( something ... foo ... something)
-- expected output: "x", "y"

非常感谢。

最佳答案

ok,下面是核心代码:

function getArgs(fun)
local args = {}
local hook = debug.gethook()

local argHook = function( ... )
local info = debug.getinfo(3)
if 'pcall' ~= info.name then return end

for i = 1, math.huge do
local name, value = debug.getlocal(2, i)
if '(*temporary)' == name then
debug.sethook(hook)
error('')
return
end
table.insert(args,name)
end
end

debug.sethook(argHook, "c")
pcall(fun)

return args
end

你可以这样使用:

print(getArgs(fun))

关于lua - 从函数外部获取函数的参数名称列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3097209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com