如何使用__index作为函数?

时间:2016-02-08 15:04:14

标签: function lua lua-table metatable

我想模仿:

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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您需要在metamethod中返回一个值:

return rawget(b,k)