2016-02-08 65 views
0

我試圖模仿:如何使用__index作爲函數?

b = {1,2,3} 
a = setmetatable({1,nil,3},{__index = b}) 
print(a[2]) -- prints 2 

與:

b = {1,2,3} 
a = setmetatable({1,nil,3},{__index = function(t,k) rawget(b,k) end}) 
print(a[2]) -- nil 

我做了什麼錯?

+0

您也可以騰出一個的upvalue和變化'rawget(B,K)''來rawget(T,K)'。 – IllidanS4

回答

4

您需要在元方法返回一個值:

return rawget(b,k) 
相關問題