0

I'm trying to imitate:

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

with that:

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

What did I do wrong?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Parki
  • 159
  • 9

1 Answers1

4

You need to return a value in the metamethod:

return rawget(b,k)
lhf
  • 70,581
  • 9
  • 108
  • 149