lua 中的元表

a={

age=0,

__tostring=function()

{

},

__call=function()

{

},

}

b={}

a.__index=a{}//将a表中的__index指向自己

setmetatable(a,b)//将b设置为a的元表;

__tostring

当子表a被当做字符串使用时会调用原表b中的__tostring方法,

__call

当子表a被当做字符串使用时会调用原表b中的__call方法

__index

当b.age是会先寻找b表中的age属性,没找到时会在原表中__index指向的表中去寻找

__newindex

b.name a,b表中都没有name属性,执行b.name="123"会在b表中生成属性name="123",如果设置

a.__newindex={} 会把name生成到__newindex指向的表中去

相关推荐
程序员老陆5 小时前
C++ 未定义行为全景:对象模型、优化边界与工程防御
开发语言·c++·程序设计
嵌入式er5 小时前
影石系统组 一二面OC面经
java·开发语言
徐小黑ACG5 小时前
Golang 基础06 接口interface
开发语言·后端·golang
半杯咖啡半行码6 小时前
Qt 开发基础:版本演进、常用工具与多平台安装
开发语言·qt
下页、再停留6 小时前
【C#桌面客户端系列学习-8】批量导出数据为csv格式
开发语言·c#·visual studio
菜鸟~noob2336 小时前
【电子战】 第26篇:大气衰减——氧气与水汽吸收【含matlab代码】
开发语言·matlab
菜鸟~noob2336 小时前
【电子战】第25篇:自由空间、双射线与菲涅尔区【含matlab代码】
开发语言·算法·matlab
梅菲塔亚6 小时前
华为云从入门到实战
开发语言·华为云·php
霸道流氓气质6 小时前
幂等性与 Upsert:防止重复操作产生副作用的技术
开发语言·php