lua官方参考手册:https://www.runoob.com/manual/lua53doc/manual.html#2.4
tb = {a = 1}print(tb + 1)
tb = {a = 1}-- 新建一个元表(元表其实就是普通的表,只是功能和普通表不一样)mt = {-- 元表中的元方法__add__add = function(a, b)return a.a + bend}-- 给tb这张表绑定上元表,这样普通表的加法就被替换成元表的__add 方法setmetatable(tb, mt)print(tb + 1)
结果:
2
(相关资料图)
__
" 前缀的字符串来表示; 例如 "add" 操作的键名为字符串 "_add"。__add:+ 操作。 如果任何不是数字的值做加法, Lua 就会尝试调用元方法。
比如下面的:tb 是表不是数字,不能直接做加法,lua就会去看看 tb 表是不是有设置上了元表mt,然后才会去看看元表mt中的元方法,发现是有加法__add 这个元方法的存在,然后就调用该加法元方法。
tb = {a = 1}print(tb + 1)
table[key],当table不是表或是表table中不存在key这个键时,这个事件被触发。此时,会读出table相应的元方法。
tb = {a = "hello"}print(tb[b])
tb = {a = "hello"}--定义一个元表mt = {--定义一个元方法__index__index = function(table, key)return "hi,boy"end}-- 给tb这张表绑定上元表setmetatable(tb, mt)print(tb["b"])
--定义一个元表mt = {--定义一个元方法__index__index = { a = 10, b = 5, }}
一旦有了"__newindex"元方法,Lua就不再做最初的赋值操作。(如果有必要,在元方法内部可以调用rawset方法来做赋值。)
tb = {a = "hello"}tb["b"] = 10print(tb["b"])
结果是:10
给tb表身上设置上元表,并且元表内有一个元方法 __newindex
tb = {a = "hello"}--定义一个元表mt = {--定义一个元方法__newindex__newindex = function(t, k, v) --因为————newindex 会覆盖给原来的表进行赋值的操作,即覆盖操作tb["b"] = 10end}setmetatable(tb, mt)tb["b"] = 10print(tb["b"])
tb = {a = "hello"}--定义一个元表mt = {--定义一个元方法__newindex__newindex = function(t, k, v)rawset(t,k,v) --发现,tb["b"] = 10 又可以正常赋值了end}setmetatable(tb, mt)tb["b"] = 10print(tb["b"])
B站视频,作者-每日喝粥《【Lua】元表、元方法、面向对象》 https://www.bilibili.com/video/BV1f44y1a7Gk/
如果本文对你有帮助的话记得给一乐点个赞哦,感谢!
标签:
lua元表、元方法lua官方参考手册:https: www runoob com manual lua53doc manual html 2 4一、总结:☺1
1、在我们平凡的日常里,大家都有了解过肌肤的知识吗?以下是小编帮大家整理的如何对混合肌肤进行保养和抢
据贷方称,可以在工作开始之前提供项目每个阶段的高达90%的成本,并且每次释放都作为抵押申请的一部分而特
人工智能赋能智慧城市江岸区举行科技成果转化对接活动---4月26日,2023年“人工智能赋能智慧城市”江岸...
1、入不敷出(rùbùfūchū):敷,够、足。2、入不敷出,收入不够支出,形容非常贫穷。本文分享完毕,希望对
4月27日,首批3只中证国新央企股东回报指数ETF获批,包括汇添富中证国新央企股东回报ETF、广发中证国新央企
锦浪科技最新股东户数4 26万户,低于行业平均水平。公司户均持有流通股份7045股;户均流通市值85 99万元。
【中国人保:一季度净利润117 21亿元同比增长230%】中国人民保险集团公告,第一季度营业收入1377 69亿元,
随着互联网金融的发展,越来越多的人开始使用花呗进行消费。然而,一旦逾期未还,就会面临被起诉的风险。很
1、过滤过程中没有区别。2、区别在于定量滤纸有稳定的灰分值,可以用于分析中的炽灼残渣指标或者沉淀分析。
《铁路帝国2》即将发售,预购豪华版的玩家将获得丰富的预购奖励,为身为黄金时代的铁路大亨的自己稳固地位
中风是急性脑血管疾病,是临床急危重症,是由多种慢性基础疾病迁延而来,但中风多突然发作,起病较为隐匿,
4月28日,2023首届全国家政博览会在北京盛大开幕,贵州40余家企业,在贵州省家协的带领下,以“多彩黔灵家
1、工业用水重复率是工业用水中重复利用的水量与总用水量的比值。2、工业用水应当推广采用新技术、新材料、
上证报中国证券网讯(记者宋薇萍严曦梦)记者从4月27日召开的上海市政府新闻发布会上获悉,作为第四届“...
中国质量新闻网讯近日,河南省商丘市市场监督管理局发布食品监督抽检情况的公示(2023年第7期)。本次共抽检
东方网记者熊芳雨、柏可林4月27日报道:“推动上海国际金融中心和科创中心双向赋能,是我们银行业保险业...
2001年,怀孕的女星妮可·基德曼震惊地盯着电视——丈夫宣布要和她离婚!而她毫不知情。愤怒之下,腹部...
新海南客户端、南海网、南国都市报4月27日消息(记者王子遥)记者从4月27日举办的“4·13”重要讲话五年...
同花顺金融研究中心4月27日讯,有投资者向智能自控提问,你好,董秘,公司涉及的液冷技术都是那个方面的,
X 关闭
X 关闭