所谓反射,我的理解就是,给一个函数名称的字符串,然后就可以通过这个字符串来调用这个名称的函数了,比如
void test() {...}
string funstr = "test()"
使用反射机制,然后就可以通过funstr来调用test()这个函数了
如果仅是这样,Lua中也可以做到,demo代码如下:
function test()
print("this is lua test function.");
end
local f = loadstring("test()");
f(); -- 此处将调用test()函数
亮点就是loadstring()这个方法,它返回一个匿名的函数,书上说这个函数功能很强大,不到万不得已不要使用(有点像大绝招了)
到现在我还不太清楚这个函数的具体功能,只是现在发现他可以实现Lua的反射机制,故记录于此,以供参考。