`

37、外部迭代器

 
阅读更多
外部迭代器

iterator=9.downto(1)
begin
  print iterator.next while true
  rescue StopIteration
   puts "...blastoff!"
end

987654321...blastof!
=> nil

iterator=9.downto(1)
loop do
   print iterator.next
end
puts "...blastoff!"


module Iterable
  include Enumerable
  def each
      loop { yield self.next }
   end
end


将外部迭代器传递给一个内部迭代器方法
def iterate(iterator)
  loop{yield iterator.next}
end

iterate(9.downto(1)){|x| print x}
987654321=> nil

2011-4-19 15:17 danny

P154
分享到:
评论

相关推荐

    【JDK1.8源码剖析】外部迭代器Iterator接口

    Iterabtor是从jdk1.2就存在的接口,称为外部迭代器。支持对容器中的元素进行遍历和移除,还支持流式遍历 外部迭代器的特点是:可拔插。其迭代行为可以挂载到待比较对象的外部, 此外,外部迭代器往往用来支撑内部...

    设计模式中的迭代器模式在Cocoa Touch框架中的使用

    基本理解 迭代器模式(Iterrator):提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露该元素的内部表示。 当你访问一个聚合对象,而且不管这些... 外部迭代器让客户端直接操作迭代过程,所以客户端需要知道

    javascript设计模式之迭代器模式

    迭代器模式分为内部迭代器和外部迭代器,内部迭代器就是在函数内部定义好迭代的规则,它完全接手整个迭代的过程,外部只需一次初始调用。 内部迭代器 以下自行实现的类似jquery中$.each()的each()函数就是内部迭代...

    BST-Traversal:这是使用外部迭代器(无递归)执行二叉搜索树遍历的片段

    BST-遍历GenericTreeEquality.java - 这是一个使用外部迭代器(无递归)执行二叉搜索树遍历的片段。Delegation.java - 这是一个演示继承到委托转换的片段。

    迭代器:Hoa \ Iterator库

    此外,Hoa旨在成为工业界和研究界之间的桥梁。...Hoa\Iterator\Aggregate允许类通过getIterator方法使用外部迭代器。 它扩展了 遍历迭代器 Hoa\Iterator\IteratorIterator将可任何内容转换为迭代器。

    PHP聚合式迭代器接口IteratorAggregate用法分析

    PHP IteratorAggregate又叫聚合式迭代器,它提供了创建外部迭代器的接口,接口摘要如下: IteratorAggregate extends Traversable { abstract public Traversable getIterator ( void ) } 实现getIterator方法时...

    【JDK1.8源码剖析】内部迭代器 Iterable接口

    文章目录Iterable源码分析(一)简介(二...当然,一个类如果没有实现Iterable接口,也可以通过挂载外部迭代器Iterator进行遍历。 此外,内部迭代器还可转换为可分割迭代器Spliterator,以便用于流式操作 注意区别于外

    C++设计模式之迭代器模式(Iterator)

    迭代器模式提供了一种顺序访问容器中元素的方法,而无需了解器内部的类型和结构,该模式的核心思想将访问和遍历容器对象的功能交给一个外部的迭代器对象,该迭代器定义了访问聚合对象的接口, 类视图 实现 class ...

    mesh.js, 异步iterable迭代器的实用工具库.zip

    mesh.js, 异步iterable迭代器的实用工具库 Mesh是一个用于异步iterable迭代器的实用工具库。动机这个库最初是用来处理复杂的数据流,并统一应用程序在内部和外部的通信方式。 它还作为一个单一的单通道通道for所有...

    嵌套类、迭代器1

    嵌套类嵌套类中,内部类和外部类都是各自独立的对象,各不包含对方的成员内部类可以通过对象访问外部类的私有(保护)成员,但是外部类不能访问内部类的私有(保护)成员迭

    .NET设计模式(18):迭代器模式(IteratorPattern)

    Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露...

    Tensorflow-Logistic-Regression:使用数据集和迭代器输入数据而不是占位符的张量流中的逻辑回归

    使用数据集和迭代器代替输入数据的占位符在张量流中进行逻辑回归该逻辑回归模型是通过使用数据集创建的,该数据集是一类用于代替占位符的张量流。 在此示例中,迭代器用于遍历数据的每个纪元,并基本上替代了对任何...

    LinkList.cpp

    实现一个链表类(自己定义数据结构,不要使用语言自带的数据结构),链表内部每个 节点存放一个 int ... 利用迭代器模式,实现一个外部迭代器,可以从头到尾和从尾到头两种方式遍历这个链 表,打印各个节点中的数据。

    Python协程的实现原理及相关技术.docx

    生成器的迭代器协议 Python协程的实现原理是基于生成器的迭代器协议。生成器(generator)是一种特殊的函数,可以将函数的执行流程暂停并保存到内存中,等到调用方继续执行时再恢复运行。生成器可以通过yield语句将...

    ArrayList.java

    此类的返回的迭代器 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式,除了通过迭代器自身的remove或add方法,迭代器都将抛出ConcurrentModificationException...

    pieshell:结合了shell管道的表现力和python迭代器证明的Python shell环境

    Pieshell是一个Python shell环境,将shell管道的表现力与python迭代器的功能结合在一起。 它可以以两种主要方式使用: 作为交互式外壳,例如替换bash 作为替换例如subprocess.Popen的普通python模块 目录 环境...

    JDKAPI18CN(中文版)

    The iterators returned by this class's个 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove种或add方法,迭代器都将抛出一个...

    matlab加速迭代法代码-nonlinear-preconditioning-for-optimization:非线性预处理项目:非线性优化

    在这种方法中,可以将外部迭代方法(LBFGS,Nesterov,NCG,NGMRES,Anderson)视为内部迭代(例如ALS)的非线性收敛加速器,或者等效地,可以将内部迭代(ALS)视为作为外部迭代的非线性前置条件。 为LBFGS,...

    java8stream源码-java-8-language-demo:基于VenkatSubramaniam在NoFluff,JustStuf

    以前Java只提供了外部迭代器,现在我们也会有内部迭代器 外部例子:我们熟悉这个 elements = [ 1 , 2 , 3 , 4 , 5 ]; for i in elements : print i 内部示例:没有那么多(除非你写了很多 ruby​​) beatles = [ '...

Global site tag (gtag.js) - Google Analytics