Lua “反射”机制
所谓反射,我的理解就是,给一个函数名称的字符串,然后就可以通过这个字符串来调用这个名称的函数了,比如
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的反射机制,故记录于此,以供参考。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步