本文共 898 字,大约阅读时间需要 2 分钟。
1.元表
tableA={ "1","2","3","4","5"}tableB={ __index = function() return "不存在" end, name="name", }tablec=setmetatable(tableA,tableB)tableD=getmetatable(tableA)print(tableA[9]) --不存在print(tableD.name) --name
2.元方法__index
tableA={ "1"}tableB={ __index = function() return "不存在" end, name="name", }setmetatable(tableA,tableB)print(tableA.name) --不存在
tableA={ "1"}local tableC = { name="Name"}tableB={ __index = tableC, }setmetatable(tableA,tableB)print(tableA.name) --Name
prototype={ x=0,y=0,width=100,height=200}function new(o) return setmetatable(o,{ __index=prototype})endw=new({ x=10,y=20})print(w.width,w.height,w.x) --100 200 10
function setDefault(t,d) local mt = { __index=function() return d end} setmetatable(t,mt)endtab={ x=10,y=20}print(tab.x,tab.z) --10 nilsetDefault(tab,100)print(tab.x,tab.z) --10 100
转载地址:http://cbrxo.baihongyu.com/