2017-04-05 94 views
3

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呢?我應該在這裏定義什麼函數?

+0

我不認爲你需要它,實際上。 [看看這裏](https://github.com/ThePhD/sol2/issues/146) –

回答

0

我認爲你正在尋找__index元表。