lua学习笔试之迭代器和通用for

1、迭代器和闭包

迭代器是一个允许在集合元素的迭代。lua中用函数来表示迭代。迭代器需要记录一些状态。闭包提供了一些机制来记录状态。

闭包是可以访问一个或者多个来自于闭包环境的本地变量。变量用于在连续调用闭包时保持其值。闭包涉及到两个函数,一个是闭包本身,另一个是创建闭包及本地变量的工厂函数。

2、通用for语义

通用for保持三个变量:迭代函数,不变状态,控制变量。其语法为

for var-list in exp-list do

body

end

var-list是一个或者多个变量名列表,由分号分割。exp-list是一个或者多个表达式的列表,也是由分号分割。通常表达式列表只包含一个元素,是对迭代工厂方法的调用。

var-list列表中的第一个为控制变量,其不会为nil。

for做的第一件事是计算in之后的表达式,返回由for保持的三个值:迭代函数,不变状态,控制变量的初始值。初始化后,for调用两个参数的迭代函数(不变状态和控制变量)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值