什么是lua __pairs的实际实现?

有没有人知道lua 5.2的实际实现. Metamethod __pairs?换句话说,如何在Metatable中实现__pairs作为Metamethod,以便它与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,nil
end

供参考:Lua 5.2 manual,pairs

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...