Lua 设置元表和元方法作用

在 Lua中的table(表),就像c#中的HashMap(哈希表),key和value一 一对应。

元表:table的一个操作的拓展,里面包含关联了对应的方法,元方法就是其中一个。

元方法:当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该table的metatable(假定有metatable)中的__index 键。如果__index包含一个表格,Lua会在表格中查找相应的键。也就是说当访问table的key不存在的时候就回到设置了的原表中找。

设置元表:

例子:

当 设置了元表,没设元方法(__index):

输出结果:

son.eye: 2

nil

当给元表设置元方法:

 输出结果:

son.eye: 2

Parent.hand: 1

这里的元方法作用是当Son访问hand的时候,自身表里没有,就到元表里找。类似C#中的继承,Son继承了Parent,可以访问Parent中的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值