Lua函数有没有办法获得调用自身的文件的路径?

例如,有一个写在 a.lua 中的函数 func,
然后先在 b.lua 中调用了此函数,再在 c.lua 中调用了此函数。
而 func 的功能是输出那个调用自己的文件的路径,
也就是第一次执行时输出 "b.lua",第二次执行时输出 "c.lua"。
请问这样的函数 func 应该怎么设计?

你可以考虑用debug库帮助你

for i,v in pairs(debug.getinfo(2)) do
    print(i,v)
end

但是我不是很推荐这个库 这个库的很多函数效率很低 而且破坏了域的概念

你应该通过许多其他途径对这个函数进行维护

其中2表示当前栈的层次 因为你是两重的函数调用,所以是上一层的函数调用相关的信息,比如名字,函数 所在文件 函数定义的行数等等

运行demo的时候要注意 这一段代码不能拿去独立运行 必须放在第二重嵌套的函数里使用

温馨提示:答案为网友推荐,仅供参考
相似回答