版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HQ354974212/article/details/89416712
元表,听起来高大上,说白了,就好像一个附属表一样。。。
比如有个表t, 为表t设置一个元表t2, 加入t中没有的东西,如果有元表,将会去t2去找找。。。
t={}
--table默认没有元表
print(getmetatable(t))
t="hello"
--字符串默认有元表
print(getmetatable(t))
t={}
t2={}
--为t设置元表t2
setmetatable(t,t2);
--获取t的元表t2
print(t , t2 , getmetatable(t))
--简写,为t设置元表
t = setmetatable({},{})
print(t.aaa)
getmetatable(t).__index={ aaa="aaa" } -- 为t的元表设置__index 键(表)
print(t.aaa)
getmetatable(t).__index= function() return "bbb" end -- 为t的元表设置__index 键(函数)
print(t.aaa)
运行效果: