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 分钟前
rust-字符串(切片)、元组、结构体、枚举、数组
开发语言·后端·rust
逻辑驱动的ken20 分钟前
Java高频面试考点场景题08
java·开发语言·面试·求职招聘·春招
W230357657342 分钟前
【改进版】C++ 固定线程池实现:基于调用者运行的拒绝策略优化
开发语言·c++·线程池
星辰_mya1 小时前
PV之系统与并发的核心wu器
java·开发语言·后端·学习·面试·架构师
做时间的朋友。2 小时前
Java虚拟线程详解:从原理到实战,解锁百万并发新姿势
java·开发语言
一只大袋鼠2 小时前
MyBatis 从入门到实战(二):代理 Dao 开发与多表关联查询
java·开发语言·数据库·mysql·mybatis
明月醉窗台2 小时前
Python-opencv批量处理文件夹中图像操作
开发语言·python·opencv
周末也要写八哥2 小时前
C++实际开发之泛型编程(模版编程)
java·开发语言·c++
好家伙VCC2 小时前
**发散创新:用 Rust实现游戏日引擎核心模块——从事件驱动到多线程调度的实战
java·开发语言·python·游戏·rust
Dxy12393102162 小时前
Python在图片上画圆形:从入门到实战
开发语言·python