像这样的东西:
function foo()
print( __func__ )
...
end
Run Code Online (Sandbox Code Playgroud)
怎么做到呢?
Eph*_*aim 27
#!/usr/bin/lua
local function myFunc()
print(debug.getinfo(1, "n").name);
end
myFunc()
Run Code Online (Sandbox Code Playgroud)
Chr*_*cke 12
你不能.在lua中,函数是第一类变量.所以他们没有名字.你不妨问"2的名字是什么".仅仅因为某个变量被赋值,值'2'就不会使该变量成为名称2.同样,"someFunc"是一个变量 - 可能是其中之一 - 保存一个特定的函数.
function __FILE__() return debug.getinfo(2, 'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end
function __FUNC__() return debug.getinfo(2, 'n').name end
function printlinefilefunc()
print("Line at "..__LINE__()..", FILE at "..__FILE__()..", in func: "..__FUNC__())
end
Run Code Online (Sandbox Code Playgroud)
输出:
第 8 行,@./andydebug.lua 中的 FILE,func 中:printlinefilefunc