• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua元表的定义和使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Lua元表的定义和使用

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

因此Lua提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。例如,使用元表我们可以定义Lua如何计算两个table的相加操作a+b

Lua试图对两个表进行相加时,先检查两者之一是否有元素,之后检查是否有一个叫”__add”的字段,若找到,则调用对应的值。”__add”等即时字段,其对应的值(往往是一个函数或是table)就是”元方法”。

我的理解就是元表对普通表做了一个行为的扩展,元表的话可以定义一些操作,比如说:这个表跟别的表进行加法操作,访问不存在的索引的这个表的操作,输出这个表的操作等。

跟元表有关的两个重要函数:

setmetatabletable,metatable(只能用用于table,如果元表(metatable)中存在__metatable键值,setmetatable会失败)

getmetatable(table)(用于任何对象,如果元表(metatable)中存在__metatable键,则返回__metatable的值)


输出结果




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
lua中的table、stack和registery发布时间:2022-07-22
下一篇:
【笨木头Lua专栏】基础补充05:迭代器番外篇发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap