function iter (a, i) i = i + 1 local v = a[i] if v then return i, v –迭代函数返回2个值 索引与值 end end function ipairs (a) –ipairs lua简单实现 return iter, a, 0 –返回3个值 迭代函数,状态常量a,控制变量初始值0 end a = {“one”, “two”, “three”} –无状态的迭代器是指不保留任何状态的迭代器, –因此在循环中我们可以利用无状态迭代器避免创建闭包花费额外的代价。 for i, v in ipairs(a) do –无状态迭代? 完成迭代功能的是for语句 print(i, v) end

已经理解

无状态指函数不访问外部函数变量

这样的迭代函数就是无状态迭代器

也就是这样的函数不会再去创建闭包 保存外部函数变量

感谢您的阅读,本文由 smallwhite's Blog 版权所有。如若转载,请注明出处:smallwhite's Blog(https://smallwhite.ml/pub/uncategorized/wu-zhuang-tai-die-dai-qi.html
协同相关 协同的基础
简单迭代器 与 泛型for