--实例
-- 自定义计算表中最大键值函数 table_maxn,即计算表的元素个数
function table_maxn(t)
local mn = 0
for k, v in pairs(t) do
if mn < k then
mn = k
end
end
return mn
end
-- 两表相加操作
-- mytable 第一个普通表; setmetatable 是 mytable 的元表
mytable = setmetatable({ "壹","贰","叁" }, {
-- __add:对应的运算符 '+'(当两个另一个表和mytable相加时自动调用) 。 mytable:表一,newtable:表二
__add = function(mytable, newtable)
--获取表二的长度
for i = 1, table_maxn(newtable) do
--把表二的数据添加到表一的后面
table.insert(mytable, table_maxn(mytable)+1,newtable[i])
end
--返回新的表一
return mytable
end
})
-- 表二
secondtable = {"肆","伍","陆"}
-- 两个表相加
mytable = mytable + secondtable
--遍历新的表一
for k,v in ipairs(mytable) do
--输出结果
print(k,v)
end
--以上实例执行输出结果为:
--[[
1 壹
2 贰
3 叁
4 肆
5 伍
6 陆
--]]
模式 | 描述 |
---|---|
__add | 对应的运算符 '+'. |
__sub | 对应的运算符 '-'. |
__mul | 对应的运算符 '*'. |
__div | 对应的运算符 '/'. |
__mod | 对应的运算符 '%'. |
__unm | 对应的运算符 '-'. |
__concat | 对应的运算符 '..'. |
__eq | 对应的运算符 '=='. |
__lt | 对应的运算符 '<'. |
__le | 对应的运算符 '<='. |
(注意:__是两个下划线)
网友评论