Lua迭代器

迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。

Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。Lua 中的迭代器可以分为泛型 for 迭代器、无状态的迭代器和多状态的迭代器。

泛型for迭代器

说明

泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。泛型 for 迭代器提供了集合的 key/value 对。

语法

for k, v in pairs(t) do print(k, v) end

参数

参数 描述
k 变量列表。
v 变量列表。
t 要遍历的集合。

案例

泛型for迭代器

泛型 for 迭代器遍历数组

#!/usr/bin/lua print("haicoder(www.haicoder.net)\n") array = {"Hello", "HaiCoder", "Lua"} for k, v in ipairs(array) do print(string.format("Key = %d, Value = %s", k, v)) end

程序运行,控制台输出,如下图:

01_Lua迭代器.png

我们可以看到,我们使用了泛型 for 迭代器遍历了数组元素。

Lua迭代器总结

迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。

在 Lua 中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。Lua 中的迭代器可以分为泛型 for 迭代器、无状态的迭代器和多状态的迭代器。

泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。泛型 for 迭代器提供了集合的 key/value 对。