lua metatable

t = setmetatable({ bar = 4, foo = 7 }, { __index = { foo = 3 } })

print(t.foo)  -- 7
print(t.bar)  -- 4

t = setmetatable({  }, { __index = { foo = 3} })

print(t.foo)  -- 3
print(t.bar)  -- nil

fuc = function (t,k)
    if k == 'foo' then
        return rawget(t, 'bar')
    else
        return 0
    end
end

t = setmetatable({   }, { __index = fuc })

print(t.foo)  -- 3
print(t.bar)  -- nil
print(t.ff)