首页 > 其他 > 详细

Lua迭代器

时间:2015-04-28 13:35:19      阅读:232      评论:0      收藏:0      [点我收藏+]

在Lua中我们常常使用函数来描述迭代器,每次调用该函数就返回集合的下一个元素.

function list_iter(t)
    local i=0
    local n=table.getn(t)
    return function()
        i=i+1
        if i<=n then return t[i] end
    end
end

t={10,20,30}
for elem in list_iter(t) do
    print(elem)
end

范性for的语义:

for var_1,...,var_n in explist do block end
--等价于
do
    local _f ,_s,_var=explist--返回迭代函数、状态常量、控制变量
    while true do
        local var_1,...,var_n =_f(_s,_var)
        _var=var_1
        if _var==nil then break end
        block
    end
end

无状态的迭代器:

 

Lua迭代器

原文:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/4462595.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!