Iterator是一種允許你遍歷一個集合中元素的結構. 在Lua中, 我們可以用function實現iterator, 每次調用這個函數, 它都返回集合中的下一個元素. 一個iterator需要保留一些用來遍歷的信息, 例如當前元素的位置以及什么時候結束. Closure的機制非常適合這個工作. 遍歷所需的環境變量可以保存在upvalue中, 這樣每一次調用這個closure, 他都返回遍歷某一個list的iterator. 由于這樣的Closure是用來產生iterator的, 我們稱這樣的closure為iterator factory.
每一次
以下是一個簡單的iterator factory, 用來遍歷一個table.
function list_iter (t)
local i = 0
local n = table.getn(t)
return function ()
i = i + 1
if i <= n then return t[i] end
end
end
每一次
以下是一個簡單的iterator factory, 用來遍歷一個table.
function list_iter (t)
local i = 0
local n = table.getn(t)
return function ()
i = i + 1
if i <= n then return t[i] end
end
end
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/