zoukankan      html  css  js  c++  java
  • 由Cocos2dx的部分代码引出的对Lua元表的认识

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

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

    伟哥的代码:

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

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

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

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

    http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html

    贴出练习代码:

     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 opt1
    10 end
    11 
    12 setmetatable(a, c)
    13 t = a + b
    14 for i, v in ipairs(t) do
    15     print(i, v)
    16 end

    显示结果:

  • 相关阅读:
    单词统计
    意见汇总
    项目评审结果
    注册表键值
    C++ 创建快捷方式
    XPosed 示例
    直播流程
    C++隐藏任务栏图标
    C++ 屏幕录制
    DUILIB UI创建过程
  • 原文地址:https://www.cnblogs.com/cg-Yun/p/4023997.html
Copyright © 2011-2022 走看看