String Lua:获取参数的文本名称

String Lua:获取参数的文本名称,string,function,lua,String,Function,Lua,比如说, function test (a) name = nameof(a) print(name) end test(def) --should print "def" 是否有任何lua技巧来实现类似于上述的东西 并不是说任何人都需要解释他们为什么想做某事;如果没有给一些人一个真实的例子,他们会变得暴躁。因此: local function registerTestSuite(suite) if (LUnit) then LUnit:AddTestSu

比如说,

function test (a)
    name = nameof(a)
    print(name)
end

test(def) --should print "def"
是否有任何lua技巧来实现类似于上述的东西


并不是说任何人都需要解释他们为什么想做某事;如果没有给一些人一个真实的例子,他们会变得暴躁。因此:

local function registerTestSuite(suite)
   if (LUnit) then
      LUnit:AddTestSuite(
            HotNReady.."_"..GetVariableName(suite), --HotNReady_PizzaTestSuite
            suite);
   end;
end;
尝试使用


您可以使用debug.getlocal([thread,]level,local)获取有关局部变量的信息,包括其名称。

在纯Lua中,您所要求的是不可能的


如果你真的需要这个,试着摆弄一下。

它是半可用的。debug.getlocal([thread,]level,local)中的“local”实际上是指向堆栈中声明为local的变量数组的索引,用level表示。是的,你是对的。这并不是您想要的通用解决方案。请不要忘记,在非调试器的生产代码中强烈建议使用
调试
模块。为什么要这样做?你想解决什么问题?我想能够编写declare_object object1。现在我必须写declare_object“object1”。declare_object是一个函数。我不确定你所要求的将如何帮助你在函数调用中提升括号。有用的问题+1。这正是我今天想要实现的目标。您可以使用
获得k,v成对(_G)do print(k,v)end
的所有变量/对象名称和值。如果变量在一个表中,您可以使用相同的代码片段来获取表中所有对象的名称。我不确定为什么边缘案例的答案经常需要包含激进的怀疑主义,即提问者是否真的需要做他们花时间问问题的事情。尽管如此,投票率还是上升了。