Lua - 实现userdata迭代器

问题描述 投票:3回答:1

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

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

但是当我试图这样做时,我会'尝试调用零值'。

我在这里找到了__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个回答
0
投票

我想你正在寻找__index元表。

© www.soinside.com 2019 - 2024. All rights reserved.