【问题标题】:Lua - implement userdata iteratorLua - 实现用户数据迭代器
【发布时间】:2019-03-14 19:31:29
【问题描述】:

Lua 5.2 我需要迭代一个 userdata 变量。 据我了解,我可以使用getmetatable__pairs 来做到这一点。像这样:

for k, v in getmetatable(userdataVariable).__pairs do
  -- someting
end

但是当我尝试执行此操作时,我得到“尝试调用 nil 值”。

我在这里找到了__pairs 实现:what is actual implementation of lua __pairs?

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

但我不明白我应该如何处理theseok?我应该在这里定义什么函数?

【问题讨论】:

标签: lua lua-userdata


【解决方案1】:

我认为您正在寻找 __index 元表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2012-01-22
    相关资源
    最近更新 更多