在Lua中将对象名称字符串化 [英] Stringify object name in Lua
本文介绍了在Lua中将对象名称字符串化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C语言中,我可以执行以下操作:
In C I can do following:
#define S1(x) #x
#define S(x) S1(x)
#define foo(x) bar(x, S(x))
int obj = 3;
foo(obj);
void bar(int v, const char * name)
{
// v == 3
// name == "obj"
}
我可以在Lua中做同样的事情吗?
Can I do the same in Lua?
foo(barbar)
function foo(ob)
-- can I get "barbar"?
end
推荐答案
我认为,只有使用与C预处理程序代码相似的预处理器,您才能做类似的事情. (普通的C编译器也无法做到这一点.)
I think you could do something similar only by using a preprocessor which does something similar to your C preprocessor code. (The plain C compiler can't do something like that, too.)
或明确地编写它:
foo(barbar, "barbar")
这篇关于在Lua中将对象名称字符串化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文