如何获取函数的名称

Lob*_*ter 2 lua function

我有个问题。如何在不使用调试命名空间的情况下知道调用我的函数的函数的名称。例如:

function test1()
   test2()
end

function test2()
   --How to get here name of function which have called my function test2.
   --How to get here "test1"?
end
Run Code Online (Sandbox Code Playgroud)

如果允许我使用调试命名空间,那会很容易,但我可以使用。有人有什么想法吗?对不起我的英语不好。

Nic*_*las 5

函数没有名称。函数是 Lua 中的值,就像数字5.23或字符串一样"string"。这些是值,它们可以存储在很多地方。因此,函数没有真正的名称。调试系统根据函数最初声明的方式分配函数名称,但仅此而已。

如果一个函数需要知道谁调用了它,那么该函数有责任将调用者作为函数参数。