有没有人知道lua 5.2的实际实现. metamethod __pairs?换句话说,如何在metatable中实现__pairs作为metamethod,以便它与pairs()完全相同? 我需要覆盖__pairs并想跳过我在表中添加的一些虚拟变量. 以下
我需要覆盖__pairs并想跳过我在表中添加的一些虚拟变量.
以下将使用metatable元明确提供对默认行为:function meta.__pairs(t) return next, t, nil end
现在,为了跳过特定元素,我们必须替换返回的下一个:
function meta.__pairs(t) return function(t, k) local v repeat k, v = next(t, k) until k == nil or theseok(t, k, v) return k, v end, t, nil end
供参考:Lua 5.2 manual, pairs