Lua中的迭代器和泛型for实例
1、迭代器与closure
在lua中,迭代器通常为函数,每调用一次函数,会返回集合中的下一个元素。每个迭代器在成功调用的时候,都需要保存一些状态,closure(闭包)完美为迭代器运用而生。
functionvalues(t) locali=0 returnfunction()--匿名函数 i=i+1 returnt[i] end end
t1={10,20,30} it=values(t1) --创建闭包变量的参数为函数参数 whiletruedo localelement=it() --调用闭包时的参数为匿名函数的参数 if(element==nil)thenbreak end print(element) end
t2={11,22,33} forvinvalues(t2)do print(v) end --输出结果 --10 --20 --30 --11 --22 --33