首页 > 编程语言 > AAuto > AAuto入门范例【1】–实现的一个简单的有状态迭代器
2012
08-20

AAuto入门范例【1】–实现的一个简单的有状态迭代器

each = function(){

//初始化部份
    var count = 0;

//返回迭代器(每循环一次,就调用下面的函数)
    return function(){

//循环执行的代码
        count++

//判断循环是否结束
        if( count > 10 ){
return null//第一个返回值为空,则终止迭代
        }

return count,“其他返回值”//如果第一个返回值不为空,则继续下一次循环
    }
}

//下面测试一下
io.open();
for(count,comment in each() ){
io.print(  count,comment )
}

 

为什么不直接用简单的循环,要搞这么一个复杂的迭代器呢?
迭代器虽然实现有一点麻烦,但是用起来就方便了,其中一个好处是隐藏了初始化的代码。

如果不使用迭代器,可能先要取到集合对象,然后再循环处理集合。
但是用迭代器就不同了,只是写迭代器的人做好这事就可以了,用户只要直接调用函数即可。

在标准库里就有大量的each前缀的函数,这些函数准备好了所有的事,
我们只要调用他并循环处理结果就行了。

最后编辑:
作者:NINE
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。