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

    显示结果:

  • 相关阅读:
    月食照片
    宾得镜头大全与发展史
    月食照片
    关于镜头系数的疑问
    经验和教训
    常用正则表达式
    12月19日
    部長面談
    周六
    异度空间
  • 原文地址:https://www.cnblogs.com/cg-Yun/p/4023997.html
Copyright © 2011-2022 走看看