美文网首页
LUA 元表(Metatable)

LUA 元表(Metatable)

作者: 菜鸟的笔记 | 来源:发表于2019-11-11 15:59 被阅读0次

    在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。

    因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。

    例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b。

    设置元表(setmetatable)

    --以下实例演示了如何对指定的表设置元表:
    mytable = {}                          -- 普通表
    mymetatable = {}                      -- 元表
    setmetatable(mytable,mymetatable)     -- 把 mymetatable 设为 mytable 的元表
    
    --以上代码也可以直接写成一行:参数分别是 普通表 元表
    mytable = setmetatable({},{})
    
    --以下为返回对象元表:(getmetatable:获取元表)
    getmetatable(mytable)                 -- 这回返回mymetatable(原表)
    

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

    相关文章

      网友评论

          本文标题:LUA 元表(Metatable)

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