全部分类
移动开发与应用
WEB前端
架构与运维
程序设计
数据库
操作系统
热点技术
综合
[lua] __call metamethod的用处
7500阅读 0评论
2014-08-29
areece
分类:
嵌入式
自认为跟C++中的functor比较像,C++中的functor就是重载了operator()的对象,当把一个C++对象当成函数一样调用obj()时,实际上启动了对于obj的operator()的调用,于是一个可被调用的对象就产生了,如果写成obj.()可能会比较符合对象方法的一般做法。
lua table如果设置了metamethod __call,调用对象luaobj()时,会调用到__call方法,具体调用机制跟其它的metamethod没有什么区别。一段简单的代码说明问题:
ev
=
{
}
functin ev
.
__call
(
)
print
"called from ev"
end
setmetatable
(
ev
,
ev
)
-
-
test it
ev
(
)
上一篇:
luajit与VC的集成
下一篇:
[lua] coroutine学习小结