Lua 迭代器
泛型 for 迭代器
array = {"Lua", "Tutorial"}
for key,value in ipairs(array)
do
print(key, value)
end
输出
Lua
Tutorial
无状态的迭代器
function square(iteratorMaxCount,currentNumber) if currentNumber<iteratorMaxCount then currentNumber = currentNumber+1 return currentNumber, currentNumber*currentNumber end end for i,n in square,3,0 do print(i,n) end
输出
1 1 2 4 3 9
多状态的迭代器
array = {"Lua", "Tutorial"}
function elementIterator (collection)
local index = 0
local count = #collection
-- 闭包函数
return function ()
index = index + 1
if index <= count
then
-- 返回迭代器的当前元素
return collection[index]
end
end
end
for element in elementIterator(array)
do
print(element)
end
输出
Lua
Tutorial

浙公网安备 33010602011771号