当前位置: 首页 > 编程笔记 >

Lua实现__add方法重载示例

范彭亮
2023-03-14
本文向大家介绍Lua实现__add方法重载示例,包括了Lua实现__add方法重载示例的使用技巧和注意事项,需要的朋友参考一下

实现加法(__add)重载代码示例:


do

 local Infor_class = {};

 function Infor_class.create(_t)   local newTable = {};   setmetatable(newTable, Infor_class); --set the metatable   for i, v in pairs(_t) do    newTable[i] = v;   end   return newTable;  end

 function Infor_class.sum(c1, c2)   if(#c1 ~= #c2) then    return nil;   else    local result = {};    local len = #c1;    for i = 1, len do     result[i] = c1[i] + c2[i];    end    print("result");    return result;   end   print("nil");   return nil;  end

 Infor_class.__add = Infor_class.sum --override the _add

 r1 = Infor_class.create{3, 4}  r2 = Infor_class.create{5, 6};

 result = r1 + r2;  print(unpack(result)); end

 类似资料:
  • 本文向大家介绍JS模拟实现方法重载示例,包括了JS模拟实现方法重载示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS模拟实现方法重载。分享给大家供大家参考,具体如下: 在JS方法中,不能像C#方法能实现重载,但是我们可以通过js中的arguments来实现js方法的重载。 下面给出html实例: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面

  • 本文向大家介绍JS重载实现方法分析,包括了JS重载实现方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了JS重载实现方法。分享给大家供大家参考,具体如下: 重载是面向对象语言里很重要的一个特性,JS中没有真正的重载,是模拟出来的(因为js是基于对象的编程语言,不是纯面向对象的,它没有真正的多态:如继承、重载、重写) 一、什么时候用重载? 举例: 后来需求改了,需要获得20条数据,而g

  • 本文向大家介绍Lua中类的实现原理探讨(Lua中实现类的方法),包括了Lua中类的实现原理探讨(Lua中实现类的方法)的使用技巧和注意事项,需要的朋友参考一下 Lua中没有类的概念,但我们可以利用Lua本身的语言特性来实现类。 下文将详细的解释在Lua中实现类的原理,涉及到的细节点将拆分出来讲,相信对Lua中实现类的理解有困难的同学将会释疑。 类是什么? 想要实现类,就要知道类到底是什么。 在我看

  • 本文向大家介绍PHP实现重载的常用方法实例详解,包括了PHP实现重载的常用方法实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现重载的常用方法。分享给大家供大家参考,具体如下: php是弱类型语言,并没有像JAVA这种强类型语言一样有重载。 重载一般来说就是拥有相同的函数名或方法名,但是参数列表却不同(包括参数个数和参数类型) 从这个定义来说,php是没有重载的,因为php

  • 本文向大家介绍Python重新加载模块的实现方法,包括了Python重新加载模块的实现方法的使用技巧和注意事项,需要的朋友参考一下 importlib 模块的作用 模块,是一个一个单独的py文件 包,里面包含多个模块(py文件) 动态导入模块,这样就不用写那么多的import代码, 典型的例子: 自动同步服务,每个网站都有一个py文件。主进程里收到同步任务,根据名称来动态导入对应的py文件,这样就

  • 本文向大家介绍JavaScript中的方法重载实例,包括了JavaScript中的方法重载实例的使用技巧和注意事项,需要的朋友参考一下 .NET里面的方法重载用着的确很方便,哪Javascript里面能不能也哪样做呢? Javasciprt里面本生是没有方法重载的功能,以前很多人的做法可能是直接少传参数过去,然后在根据参数是否为 “undefined” 未定义来决定怎么处理,从而实现类似方法重载的