1.软文推荐

2.软文推荐

3.软文推荐

无状态的迭代器是指不保留任何状态的迭代器,因此在循环中我们可以利用无状态迭代器避免创建闭包花费额外的代价。

每一次迭代,迭代函数都是用两个变量(状态常量和控制变量)的值作为参数被调用,一个无状态的迭代器只利用这两个值可以获取下一个元素。这种无状态迭代器的典型的简单的例子是 ipairs,它遍历数组的每一个元素。

案例

无状态迭代器的使用

#!/usr/bin/lua
print("haicoder(www.haicoder.net)
")
function square(iteratorMaxCount,currentNumber)
  if currentNumberthen
     currentNumber = currentNumber+1
  return currentNumber, currentNumber*currentNumber
  end
end
for i,n in square,3,0
do
  print(string.format("i = %d, square = %d", i, n))
end

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

我们可以看到,我们使用了函数来实现迭代器,实现了求数字 n 的平方。迭代的状态包括被遍历的表(循环过程中不会改变的状态常量)和当前的索引下标(控制变量),ipairs 和迭代函数都很简单,我们在 Lua 中可以这样实现:

#!/usr/bin/lua
print("haicoder(www.haicoder.net)
")
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 调用 ipairs(a) 开始循环时,他获取三个值:迭代函数 iter、状态常量 a、控制变量初始值 0;然后 Lua 调用 iter(a,0) 返回 1, a[1](除非 a[1]=nil);第二次迭代调用 iter(a,1) 返回 2,a[2]…直到第一个 nil 元素。

Lua无状态迭代器总结

无状态的迭代器是指不保留任何状态的迭代器,因此在循环中我们可以利用无状态迭代器避免创建闭包花费额外的代价。

每一次迭代,迭代函数都是用两个变量(状态常量和控制变量)的值作为参数被调用,一个无状态的迭代器只利用这两个值可以获取下一个元素。这种无状态迭代器的典型的简单的例子是 ipairs,它遍历数组的每一个元素。

本文来源:www.lxlinux.net/10128.html,若引用不当,请联系修改。

相关文章 8

1

腾讯云轻量应用服务器:1核1G云服务器3M128元/年起(腾讯云轻量应用服务器) 2分钟前

腾讯云轻量应用服务器价格怎么样? 腾讯轻量应用服务器分为按流量包计费套餐和按固定带宽计费套餐两种,轻量服务器套餐不同价格不同...

2

华为云学生服务器优惠套餐 云服务器一年仅99元(华为云全国大学生暑期实践) 3分钟前

华为云的云创校园计划: 华为云助力大学生创新创业其中大家关注的学生优惠套餐!一个月9元,一年99元!价格还不错!有需要的真-大学生...

3

青云互联:美国洛杉矶CN2GIA/香港安畅CN2云服务器低至19元/月;日本云主机仅35元/月起(青云 6分钟前

青云互联怎么样? 青云互联美国洛杉矶cn2GIA云服务器低至19元/月起;香港安畅cn2云服务器低至19元/月起;日本cn2云主机低至35元/月起!青云互联...

4

艾云:洛杉矶vps,8折优惠,圣何塞vps立减5元,直连网络,可看奈飞 9分钟前

艾云是一家刚开不久的国人主机商家,目前商家主要销售VPS服务,机房有美国洛杉矶和圣何塞,线路都非常不错,而且商家的机器为原生I...

5

Linux查看历史命令 9分钟前

在Linux系统中当你执行命令之后系统会自动保存你此次执行的命令,当你再次使用此命令时不必输入命令直接从历史命令中直接调用,下面良...

6

用户自定义终端显示配置 11分钟前

之前有读者问到,如何在终端显示当前的git分支,实际上这就是自定义终端显示配置了。不过在直接介绍如何显示当前分支之前,来看看到...

7

Linux常用命令reject命令 12分钟前

Linux常用命令 reject命令 属于CUPS套件,用于指示打印系统拒绝发往指定目标打印机的打印任务,下面良许教程网为大家分享一下Linux常用命令...

8

WP Engine和DreamHost两大美国主机哪个好(wpa和wpe) 13分钟前

近年来美国主机因其稳定性高、价格便宜和免备案等特点成为国内站长建站的首要选择,WP Engine和DreamHost是两家目前国内比较知名的美国主...