欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Lua实现__add方法重载示例

程序员文章站 2022-07-05 11:11:13
实现加法(__add)重载代码示例: 复制代码 代码如下: do  local infor_class = {};  function info...

实现加法(__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