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

相关推荐
惊鸿一博12 小时前
统计_滚动标准差:局部波动性衡量
开发语言·python
这个DBA有点耶12 小时前
数据库管理工具+开发工具的融合:AI如何重塑DBA工作流?
开发语言·数据库·人工智能·sql·云计算·dba
lynnlovemin12 小时前
【信息学竞赛专题】滑动窗口(尺取法)超全详解|C++模板+经典例题+避坑指南
开发语言·c++·算法·滑动窗口·信息学竞赛
wjs202412 小时前
JavaScript 类型转换
开发语言
似水এ᭄往昔12 小时前
【Qt】--Qt概述
开发语言·c++·qt
星秀日13 小时前
rust学习入门
开发语言·学习·rust
星越华夏13 小时前
python办公自动化,csv文件/excel文件差集合并
开发语言·python·excel
弹简特13 小时前
【零基础学Python】04-Python运算符、分支、循环与随机数实战教程
开发语言·python
不会C语言的男孩13 小时前
C++ Primer Plus 第3章:处理数据
开发语言·c++
一天 24h13 小时前
Python自定义迭代器:从入门到精通
开发语言·python·迭代器模式·学习方法·新人首发