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指向的表中去

相关推荐
|_⊙26 分钟前
C++ 智能指针
开发语言·c++
电子科技圈30 分钟前
IAR作为Qt Group独立BU携两项重磅汽车电子应用开发方案首秀北京车展
开发语言·人工智能·汽车·软件工程·软件构建·代码规范·设计规范
代码中介商30 分钟前
C语言指针深度解析:从数组指针到函数指针
c语言·开发语言
Jasmine_llq1 小时前
《B4356 [GESP202506 二级] 数三角形》
开发语言·c++·双重循环枚举算法·顺序输入输出算法·去重枚举算法·整除判断算法·计数统计算法
止语Lab1 小时前
Go vs Java GC:同一场延迟战争的两条路
java·开发语言·golang
Rust研习社1 小时前
Rust 多线程从入门到实战
开发语言·后端·rust
Ulyanov1 小时前
《玩转QT Designer Studio:从设计到实战》 QT Designer Studio数据绑定与表达式系统深度解析
开发语言·python·qt
棋子入局2 小时前
C语言制作消消乐游戏(4)
c语言·开发语言·游戏
froginwe112 小时前
Python3 实例
开发语言
xiaoshuaishuai82 小时前
C# ZLibrary数字资源分发
开发语言·windows·c#