这是一个例子:
local t1 = {a = 1}
local t2 = {b = 2}
setmetatable(t1, {__index = t2})
assert(t1.a == 1) -- true
assert(t1.b == 2) -- true
for k, v in pairs(t1) do
print(k, v) -- печатает "a 1"
-- не хочет печатать "b 2"
end
如何在不调用 __index 的情况下迭代表?
到目前为止,我已经想出了这个拐杖:
不幸的是,如果__index是一个函数而不是一个表,它就会失败,但否则它可以工作。