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

相关推荐
45288655上山打老虎12 分钟前
【智能指针】
开发语言·c++·算法
蜗牛攻城狮20 分钟前
JavaScript 尾递归(Tail Recursion)详解
开发语言·javascript·ecmascript
Dxy123931021622 分钟前
Python的PIL对象crop函数详解
开发语言·python
坐吃山猪29 分钟前
Electron04-系统通知小闹钟
开发语言·javascript·ecmascript
翔云 OCR API30 分钟前
护照NFC识读鉴伪接口集成-让身份核验更加智能与高效
开发语言·人工智能·python·计算机视觉·ocr
程序喵大人38 分钟前
CMake入门教程
开发语言·c++·cmake·cmake入门
半生过往1 小时前
前端运行PHP 快速上手 使用 PHPStudy Pro 详细搭建与使用指南
开发语言·前端·php
zlpzlpzyd1 小时前
ecmascript中Promise和async/await的区别
开发语言·前端·ecmascript
凛_Lin~~1 小时前
安卓 Java线程八股文 (线程、多线程、线程池、线程安全)
android·java·开发语言
C语言不精1 小时前
c语言-优雅的多级菜单设计与实现
c语言·开发语言·算法