3

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

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

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

我在__pairs这里找到了一个实现: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?我应该在这里定义什么功能?

4

1 回答 1

-1

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

于 2017-05-13T23:17:07.143 回答