Lua中的迭代器和泛型for实例

exit_20209 18 0 pdf 2021-05-26 09:05:57

在lua中,迭代器通常为函数,每调用一次函数,会返回集合中的下一个元素。每个迭代器在成功调用的时候,都需要保存一些状态,closure(闭包)完美为迭代器运用而生。luo的内部函数已经为我们提供了迭代函数,运行foreach时我们会调用隐式的迭代器。上面的迭代器有一个明显的缺点,就是每次循环时都要创建一个新的closure变量,而不能运用之前已经创建好了的closure变量,如果我在这个循环外再加一个循环进行迭代时,这就成了一个很繁琐并且容易出错的问题。下面出现的迭代器很好的解决了这个问题,就不必为每次的泛型for都创建一个新的closure变量了。通过上面的例子可以看出,可以无限次运用list变量和调用traverse函数而不必像第一种情况那样每次循环之前都创建新的closure变量。

Lua中的迭代器和泛型for实例

Lua中的迭代器和泛型for实例

Lua中的迭代器和泛型for实例

用户评论
请输入评论内容
评分:
暂无评论