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

相关推荐
apihz4 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
知无不研4 小时前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
bksczm4 小时前
Linux之信号量(POSIX标准)
java·开发语言
吠品5 小时前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
CallmeFoureyes5 小时前
使用 C# 提取 Word 文档中的表格数据
开发语言·c#·word
gugucoding5 小时前
2. 【Java】搭建Java开发环境
java·开发语言
多加点辣也没关系5 小时前
JavaScript|第9章:对象 — 基础
开发语言·javascript·ecmascript
2601_949818095 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
blueman88885 小时前
qt5-serialbus详细解析
开发语言·网络·qt
汤米粥6 小时前
Python爬虫中Xpath用法之——normalize-space()
开发语言·python