Lua表添加操作符

Lua 中我们通过使用元方法,可以为 table 添加操作符。

操作符

模式 描述
__add 对应的运算符 ‘+’.
__sub 对应的运算符 ‘-’.
__mul 对应的运算符 ‘*’.
__div 对应的运算符 ‘/’.
__mod 对应的运算符 ‘%’.
__unm 对应的运算符 ‘-’.
__concat 对应的运算符 ‘…’.
__eq 对应的运算符 ‘==’.
__lt 对应的运算符 ‘<’.
__le 对应的运算符 ‘<=’.

案例

Lua为表添加操作费

#!/usr/bin/lua print("haicoder(www.haicoder.net)\n") 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({ 1, 2, 3 }, { __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 = {4,5,6} mytable = mytable + secondtable for k,v in ipairs(mytable) do print(string.format("K = %s, V = %s", k, v)) end

程序运行后,控制台输出如下:

05_Lua表添加操作符.png

我们通过了 __add 自己实现了两表相加的操作。

Lua表添加操作符总结

在 Lua 中我们通过使用元方法,可以为 table 添加操作符。