今日学习--Lua元表元方法

今日学习

Lua元表元方法

个人理解 元表就是将对Lua中Table的一个拓展 在元表中的元方法就是类似对Table行为进行一个扩大

在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。
因此 Lua 提供了元表(Metatable),允许我们改变table的行为,每个行为关联了对应的元方法。
(菜鸟)

元表和元方法的关系就是其实就是一个键值对应的关系
__add 对应加法 __index对应索引 还有很多(建议百度)

个人理解 所以说白了 元表也是一个普通的lua表 只是我们通过设置他的元方法让他与众不同 转而言之 元表是可以层层嵌套的 虽然一个表似乎不能拥有多个元表 但是可以拥有一个有元表的元表

而rawget(table, Index)方法就是在不触发元方法的情况下获取值的方法,因为在lua取值赋值的过程中,会层层索引,先查自己这个表有无对应的值,再查元表,再查元表的元表…最后返回nil,所以在项目中,我们也不太推荐使用元表继承太多,因为这样的搜索和赋值效率都非常低。

最后附带一个自己写的测试代码
下面展示一些 内联代码片

TestMetaTable()
    local myTab
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值