56__index元方法
__index(两个下划线)
定义普通表
给普通表p,设置元表y,而元表y中有index,__index有一个表i,i中有我们访问的不存在的key.
__index=表
print("---测试__index----")
-- 普通表
tab1  = {"a","b","c"}
print(tab1[5])
-- 普通表,有一个元表,5= "e"
newTab = {}
newTab[5] ="e"
metaTab1 = {__index=newTab}
setmetatable(tab1,metaTab1)
print(tab1[5])
输出结果
nil
e
__index= 函数(表,key)
print("---测试__index----")
-- 普通表
tab1  = {"a","b","c"}
print(tab1[5])
print("原始的table:",tab1)
metaTab1 = {
	__index=function(tab,key)
		print("参数当中的tab:",tab)
		print("参数当中的key:",key)
		
		if(key == 5) then 
			return "index--5"
		end
end
}
setmetatable(tab1,metaTab1)
print(tab1[5])
输出结果:
---测试__index----
nil
原始的table:    table: 00B58F78
参数当中的tab:  table: 00B58F78
参数当中的key:  5
index--5
请求表中key的值:
先在普通表中找,有返回,没有,看原表。
如果原表有--index,且--index中有对应的key.
如果没有,继续--index的function
    时间不断流逝,不变的是每一年的微风,不疾不徐。风吹碎发,吹动心,我们慢慢长大,慢慢变老,慢慢地等待花开,慢慢地品味每一种细腻的情感。生活的节奏或许会很快但永远保留热爱美好事物的心,保持好奇,保持耐心。漫漫一生,慢慢走过,平淡而丰盈。我们来日方长。
                    
                
                
            
        
浙公网安备 33010602011771号