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

相关推荐
稚南城才子,乌衣巷风流16 分钟前
函数:编程中的核心概念
开发语言·前端·javascript
阿米亚波26 分钟前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
皓月斯语2 小时前
【C++基础】三目运算符
开发语言·数据结构·c++
初願致夕霞2 小时前
C++懒汉单例设计详解
服务器·开发语言·c++
脱胎换骨-军哥2 小时前
C++分布式系统设计:从通信引擎到分布式共识
开发语言·c++·分布式
脱胎换骨-军哥3 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
lbb 小魔仙3 小时前
VS Code Python 高级调试技巧:从入门到精通
开发语言·python
方便面不加香菜4 小时前
C++ 模板进阶
开发语言·c++
小白说大模型4 小时前
从向量嵌入到复杂 Agent:LLM、LangChain、LangGraph 完整科普
java·开发语言·人工智能·gpt·深度学习·langchain
豆浆D油条4 小时前
QT容器类QList调用erase崩溃
开发语言·qt·rpc