如何列出Lua源文件中包含的所有函数?
例如,我有fn.lua包含
function test1()
print("Test 1")
end
function test2()
print("Test 2")
end
Run Code Online (Sandbox Code Playgroud)
我希望能够从另一个Lua脚本中显示这些函数名称(test1,test2).
我现在唯一能想到的方法是使用require包含文件,然后列出_G中的函数 - 但是这也将包括所有标准的Lua函数.
当然我可以使用字符串搜索功能手动解析文件,但这对我来说似乎不是很好!
这最终将成为允许开发人员在Lua中编写函数的过程的一部分,并且操作员可以从Excel(yuk!)中的列表中选择调用哪些函数.
如果你把它们都放在一个"模块"中(无论如何你应该这样做):
mymodule = { }
function mymodule.test1()
print("Test 1")
end
function module.test2()
print("Test 2")
end
return mymodule
Run Code Online (Sandbox Code Playgroud)
它变得微不足道:
mymodule = require"mymodule"
for fname,obj in pairs(mymodule) do
if type(obj) == "function" then
print(fname)
end
end
Run Code Online (Sandbox Code Playgroud)
如果你必须以原始形式保存它们,你必须以不同的方式加载它们以分离你的全局环境,然后以类似的方式迭代它(_G
可能是在内部环境中清理它们).
归档时间: |
|
查看次数: |
1646 次 |
最近记录: |