Lua - 实现用户数据迭代器
问题描述:
Lua 5.2 我需要迭代userdata
变量。 据我所知,我可以使用getmetatable
和__pairs
。像这样:Lua - 实现用户数据迭代器
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
呢?我应该在这里定义什么函数?
答
我认为你正在寻找__index
元表。
我不认为你需要它,实际上。 [看看这里](https://github.com/ThePhD/sol2/issues/146) –