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

相关推荐
普通网友3 小时前
模板编译期机器学习
开发语言·c++·算法
普通网友3 小时前
C++与机器学习框架
开发语言·c++·算法
普通网友3 小时前
C++安全编程指南
开发语言·c++·算法
学困昇3 小时前
C++11中的右值引用和移动语义
开发语言·c++
有梦想的攻城狮3 小时前
初识Rust语言
java·开发语言·rust
程序猿_极客3 小时前
【2025 最新】 Python 安装教程 以及 Pycharm 安装教程(超详细图文指南,附常见问题解决)
开发语言·python·pycharm·python安装以及配置
2501_941235733 小时前
C++中的装饰器模式变体
开发语言·c++·算法
2501_941111253 小时前
基于C++的爬虫框架
开发语言·c++·算法
b***66613 小时前
Python 爬虫实战案例 - 获取社交平台事件热度并进行影响分析
开发语言·爬虫·python
ModestCoder_3 小时前
Tokenization的演进:从NLP基石到多模态AI的“通用翻译器”
开发语言·人工智能·自然语言处理·机器人·具身智能