如何将 __index 作为函数使用?

我正在模仿以下代码:

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

使用以下代码:

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

我做错了什么?

点赞
用户107090
用户107090

你需要在元方法中返回一个值:

返回 rawget(b,k) 
2016-02-08 15:12:01