# Lua 迭代器 迭代器是用于遍历集合或容器中元素的一种结构。在 Lua 语言中,集合往往指的是可以用来创建各种数据结构的表。比如,数组就是用表来创建的。 ## 通用迭代器 通用迭代器可以访问集合中的键值对。下面是通用迭代器的一个简单例子: ``` array = {"Lua", "Tutorial"} for key,value in ipairs(array) do print(key, value) end ``` 执行的上面的代码,我们可以得到如下的输出结果: ``` 1 Lua 2 Tutorial ``` 上面的例子中使用了 Lua 提供的默认迭代器函数 ipairs。 在 Lua 语言中,我们使用函数表示迭代器。根据是否在迭代器函数中是否维护状态信息,我们将迭代器分为以下两类: ## 无状态迭代器 由此迭代器的名称就可以看出来,这一类的迭代器函数中不会保存任何中间状态。 让我们一起来看一下下面这个例子。在这个例子中,我们用一个简单的函数创建了一个自己的迭代器。这个迭代器用以输出 n 个数的平方值。 ``` function square(iteratorMaxCount,currentNumber) if currentNumber