迭代器与泛型for
闭包是一个内部函数,他可以访问一个或多个外部函数的外部局部变量。
闭包的结构包含两个函数:一个是闭包自己,另一个是工厂(创建闭包的函数)
实现一个list的迭代器:
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
t = {10,20,30}
iter = list_iter(t)
while true do
local element = iter()
if element == nil then break end
print(element)
end
for element in list_iter(t) do
print(element)
end