加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua元表和元方法

发布时间:2020-12-14 21:59:34 所属栏目:大数据 来源:网络整理
导读:Lua元表和元方法 元表的作用:当使用到新表没有的属性或者函数,可以在元表中查找,类似继承 元表的设置:在Lua中新建table的时候不会创建元表。元表需要使用setmetatable(t)才能设置,在Lua中只能设置table类型的元表 元方法:预定义一些元方法,可以在新表
Lua元表和元方法 元表的作用:当使用到新表没有的属性或者函数,可以在元表中查找,类似继承 元表的设置:在Lua中新建table的时候不会创建元表。元表需要使用setmetatable(t)才能设置,在Lua中只能设置table类型的元表 元方法:预定义一些元方法,可以在新表数据进行算数运算和关系运算的时候能查找到对应处理的函数 一些预定义元方法的指定: mt.__add = + mt.__mul = - mt.__tostring = print mt.__eq = = mt.__lt = < mt.__le = <= __index元方法:当访问一个新表不存在的字段,如果元表有指定该元方法的时候,会调用该元方法 作用:构造新表的时候只需要保存一份共享的原型数据,然后通过__index去获取新表没有但原型数据有的字段 ?(也可以在构造新表的时候填充字段,但是这样会产生更大的开销) 类型:__index可以是一个函数也可以是一个table 绕过:可以使用rawget(t,i)的函数绕过改元方法去做一个不考虑元表的简单访问 __newindex元方法: 作用:用于更新新表不存在的属性的值 类型:当是函数:赋值的时候会调用这个元方法 ?当是table:复制在这个table中 绕过:rawset(t,k,v)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读