博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由Cocos2dx的部分代码引出的对Lua元表的认识
阅读量:6805 次
发布时间:2019-06-26

本文共 642 字,大约阅读时间需要 2 分钟。

今天游戏后端还没有来,继续看Cocos2dx引擎代码,过程中结合伟哥(大学舍友到项目伙伴到现在的公司的技术部头头)写

的代码,引发了我对Lua元表的一点认识。。。

伟哥的代码:

1 -- 因为子类覆盖了父类同名方法,通过此方法获得父类方法2 self.addChild_p = getmetatable(self).addChild

开始时搞不清getmetatable()是干啥的,怎么还高亮,查lua库,

意思是返回 参数object的__metatable(元表)。

通过下面博友的帖子了解元表的大概。。。

贴出练习代码:

1 local a = {
1, 2, 3, 4} 2 local b = {
"a", "b", "c", "d"} 3 local c = {} 4 c.__add = function(opt1, opt2) 5 for i, v in ipairs(opt2) do 6 table.insert(opt1, v) 7 print(v) 8 end 9 return opt110 end11 12 setmetatable(a, c)13 t = a + b14 for i, v in ipairs(t) do15 print(i, v)16 end

显示结果:

转载于:https://www.cnblogs.com/cg-Yun/p/4023997.html

你可能感兴趣的文章
POJ_2653_Pick-up sticks_線線相交
查看>>
spring+mybati java config配置引起的bean相互引用日志报警告问题
查看>>
IntelliJ IDEA Web开发之 SpringMvc + Mybatis 之 配置文件
查看>>
常见网络编程面试题答案征集与面试题(收集)
查看>>
文档显示部件,文档编辑部件获取标签的值
查看>>
VMware host-only模式上网设置
查看>>
使用活动目录组策略添加客户端端远程开机自动运行程序
查看>>
tomcat指定虚拟目录
查看>>
TODO:即将开发的第一个小程序
查看>>
我的友情链接
查看>>
Thanks for the memory, Linux
查看>>
制作WinPE3.0 32位与64位的双启动BCD文件
查看>>
Java8新特性之:流(二)
查看>>
JAVA学习笔记(初级)--面向对象基础
查看>>
Mybatis开发步骤
查看>>
Making your C++ code robust<three>
查看>>
jfreechart Line多个曲线图,曲线点图
查看>>
Ubuntu 16.04 设置固定IP地址
查看>>
资源合作推广方法
查看>>
利用vim多行注释和多行删除命令配置nginx.conf文件
查看>>