local t = {1, 2}
local s = {3, 4}
local function add(a, b)
local result = {}
for k, v in pairs(a) do
table.insert(result, v)
end
for k, v in pairs(b) do
table.insert(result, v)
end
return result
end
local metaTable =
{
__add = add
}
setmetatable(t, metaTable)
local x = t + s
for k, v in pairs(x) do
print(k, v)
end
元表的固有元素
__add(a, b) --加法
__sub(a, b) --减法
__mul(a, b) --乘法
__div(a, b) --除法
__mod(a, b) --取模
__pow(a, b) --乘幂
__unm(a) --相反数
__concat(a, b) --连接
__len(a) --长度
__eq(a, b) --相等
__lt(a, b) --小于
__le(a, b) --小于等于
__index(a, b) --索引查询
__newindex(a, b, c) --索引更新
__call(a, ...) --执行方法调用
__tostring(a) --字符串输出
__metatable --保护元表