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

相关推荐
我不会编程5556 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
李少兄6 小时前
Unirest:优雅的Java HTTP客户端库
java·开发语言·http
无名之逆6 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
似水এ᭄往昔6 小时前
【C语言】文件操作
c语言·开发语言
啊喜拔牙6 小时前
1. hadoop 集群的常用命令
java·大数据·开发语言·python·scala
xixixin_7 小时前
为什么 js 对象中引用本地图片需要写 require 或 import
开发语言·前端·javascript
W_chuanqi7 小时前
安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
anlogic7 小时前
Java基础 4.3
java·开发语言
A旧城以西7 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
Liudef067 小时前
deepseek v3-0324实现SVG 编辑器
开发语言·javascript·编辑器·deepseek