lua 元表 理解

比较官方的解释

个人理解

在我们项目当中,把读取的配置表作为元表,这样方便调用也不会使配置表本身发生变化。

在调用表时,直接获取该表的元表即可

在类中使用

设置整个类为元表

    
function nodeLua:create()
    local temp = {}
    setmetatable(temp, {__index = nodeLua})
    return temp
end
function nodeLua:setMode(mode)
    self._mode = mode
end

此时nodeLua包含的局部变量及成员函数 均可在外部调用

local node = nodeLua:create()
node:setMode(5)

__index 元方法

这是 metatable 最常用的键。

当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该table的metatable(假定有metatable)中的__index 键。如果__index包含一个表格,Lua会在表格中查找相应的键。

如果__index包含一个函数的话,Lua就会调用那个函数,table和键会作为参数传递给函数。

__index 元方法查看表中元素是否存在,如果不存在,返回结果为 nil;如果存在则由 __index 返回结果。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值