元表

元表是一种用来定义对table或者userdata操作方式的表。有点c++中重载的味道。

 

对指定table设置元表(metatable):

mytable={}

mymetatable={}

setmetatable(table,metatable) --该函数返回第一个参数

以上代码可以直接写为mytable=setmetatable({},{}) ???

获取元表:

getmetatable(mytable)

 

metatable可以包括任何东西,metatable特有的键一般以__开头,例如__index__newindex,它们的值一般是函数或其他table。

__index元方法:用来对表访问

__newindex元方法:用来对表更新,使用rawset和rawget防止死循环

__call元方法:类似函数对象

__tostring元方法:用于修改表的输出行为

 

参考资料:

https://www.cnblogs.com/daxiaxiaohao/p/4651767.html

https://www.cnblogs.com/blueberryzzz/p/8947446.html

https://www.cnblogs.com/Dong-Forward/p/6063365.html

https://zhuanlan.zhihu.com/p/98072589

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值