Lua中如何实现迭代的叠代器?

2026-05-21 09:3813阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计290个文字,预计阅读时间需要2分钟。

Lua中如何实现迭代的叠代器?

注意:等待值遇到nil则退出。代器是符合for循环遍历框架的,需要满足条件+1-代器函数,常量,控制变量+2-代器函数可以接受两个参数,也可以忽略处理(利用闭包封装参数作为控制变量)。

注意:叠待值遇到nil就退出

叠代器,是符合for遍历框架,需要满足条件

1-叠代函数,常量,控制变量

2-叠代函数可以接受二个参数,当然也可以忽略处理(利用闭包封装参数作为控制变量和状态变量)

无状态示例

function iter (a, i)
i = i + 1
local v = a[i]
if v then
return i, v
end
end

function ipairs (a)
return iter, a, 0
end

Lua中如何实现迭代的叠代器?

多状态示例

array = {"Google", "Runoob"}

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

本文共计290个文字,预计阅读时间需要2分钟。

Lua中如何实现迭代的叠代器?

注意:等待值遇到nil则退出。代器是符合for循环遍历框架的,需要满足条件+1-代器函数,常量,控制变量+2-代器函数可以接受两个参数,也可以忽略处理(利用闭包封装参数作为控制变量)。

注意:叠待值遇到nil就退出

叠代器,是符合for遍历框架,需要满足条件

1-叠代函数,常量,控制变量

2-叠代函数可以接受二个参数,当然也可以忽略处理(利用闭包封装参数作为控制变量和状态变量)

无状态示例

function iter (a, i)
i = i + 1
local v = a[i]
if v then
return i, v
end
end

function ipairs (a)
return iter, a, 0
end

Lua中如何实现迭代的叠代器?

多状态示例

array = {"Google", "Runoob"}

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