美文网首页
LUA 为表添加操作符

LUA 为表添加操作符

作者: 菜鸟的笔记 | 来源:发表于2019-11-11 16:45 被阅读0次
--实例
-- 自定义计算表中最大键值函数 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 对应的运算符 '<='.

(注意:__是两个下划线)

原文连接https://www.runoob.com/lua/lua-metatables.html

相关文章

  • LUA 为表添加操作符

    (注意:__是两个下划线) 原文连接https://www.runoob.com/lua/lua-metatabl...

  • lua-openresty (3)

    元表(类似操作符重载) OpenResty 最佳实践 Lua 提供的所有操作符都可以被重载: 元方法 含义"__a...

  • Lua高阶-元表

    元表 在 Lua 5.1 语言中,元表 (metatable) 的表现行为类似于 C++ 语言中的操作符重载,例如...

  • Lua元表

    Lua元表 在Lua中,我们可以通过key找到对应的value值,但是无法对两个table进行操作。 在Lua中为...

  • nginx map 妙用

    动态代理 access日志添加颜色 lua_deal_log.lua

  • ULua基础之C#与Lua交互[下]

    介绍演示 Lua添加类

  • 你应该知道的Python新方法(一 )

    Python 3.5 + : 扩展了*可迭代解包操作符和**字典解包操作符 矩阵乘法添加了中缀运算符 @ 为标准...

  • SLua-Lua调用自定义C#类

    需要在Lua中调用c#类添加特性[CustomLuaClass],在Lua中调用方法的时候,给方法添加[MonoP...

  • 学习常用链接

    //Lua Lua table详解 Lua 元表详解 云风博客 //Unity Unity知识点 栈和队列 Uni...

  • Lua 实现面向对象 (原创)

    要理解Lua是如何实现面向对象的。首先要熟悉Lua元表的相关知识,可以阅读我上一篇文章《Lua元表 (Metata...

网友评论

      本文标题:LUA 为表添加操作符

      本文链接:https://www.haomeiwen.com/subject/ilwtictx.html