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