`

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
分享到:
评论

相关推荐

    65丨迭代器模式(上):相比直接遍历集合数据,使用迭代器有哪些优势?1

    迭代器模式是一种行为设计模式,主要目的是在不暴露集合内部结构的情况下,允许外部代码遍历集合的所有元素。这种模式将遍历操作从集合类中分离出来,实现了数据结构和遍历机制的解耦。在大多数编程语言中,迭代器...

    迭代器Iterator.txt

    - **封装性好**:迭代器模式将遍历逻辑封装在迭代器内部,外部客户端不需要关心集合对象的内部结构。 - **并发控制**:通过检查修改计数等机制,迭代器模式能够有效地处理并发访问问题。 ### 四、总结 迭代器模式是...

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

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

    迭代器源码

    `GetEnumerator`方法实际上是一个迭代器,当被外部代码(如foreach循环)调用时,会返回一个`IEnumerator<int>`对象,该对象可以通过`MoveNext()`和`Current`属性遍历序列。 在我们的“迭代器Demo”项目中,可能...

    java体系结构之迭代器模式.rar

    迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java中,迭代器模式广泛应用于集合框架,如List、Set和Map接口,使得程序员可以方便地遍历集合中的元素。 ...

    java专题-迭代器

    其中,外部迭代器允许客户端控制迭代过程,提供更大的灵活性,而内部迭代器则由迭代器自身控制迭代,但在Java环境下其实用性较弱。 Java集合框架中的迭代器通常采用外部迭代器的方式实现。例如,在`List`接口中,`...

    深入浅出学习Java设计模式之迭代器模式

    1. 外部迭代器:客户端代码控制遍历的过程,例如Java中的for-each循环。 2. 内部迭代器:迭代器自身控制遍历,客户端只需调用迭代器的方法即可。在Java集合框架中,大多数情况下使用的是外部迭代器。 在Java中,`...

    java常用设计模式-迭代器模式

    迭代器模式的优点还在于,它可以帮助开发者避免了集合对象的内部实现细节暴露给外部世界,从而提高了代码的可维护性和可读性。 迭代器模式是一种非常有用的设计模式,它可以帮助开发者更方便地遍历集合对象,并提高...

    迭代器、代码块、闭包

    迭代器、代码块和闭包是编程中的三个重要概念,特别是在Python这样的动态语言中,它们在构建高效、灵活的程序中扮演着关键角色。 首先,我们来深入理解迭代器。迭代器是一种对象,它能够按照特定顺序遍历一组数据,...

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

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

    c#代码介绍23种设计模式-16迭代器模式(附代码)

    迭代器模式提供了一种方法顺序访问一个聚合对象(理解为集合对象)中各个元素,而又无需暴露该对象的内部表示,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。 3. 迭代器模式的...

    深入浅出学习Java设计模式之迭代器模式[参考].pdf

    在Java集合框架中,通常使用的是外部迭代器,这意味着控制遍历进程的逻辑在客户端代码中实现。而内部迭代器则是由迭代器自身控制遍历过程,这种方式在Java中并不常见,因为它的灵活性和实用性相对较弱。 具体迭代器...

    迭代器模式参照.pdf

    迭代器模式是一种行为设计模式,它的主要目的是在不暴露集合对象内部结构的情况下,允许外部代码以一致的方式遍历集合中的所有元素。这使得客户端代码能够独立于集合的特定类型进行操作,增强了代码的灵活性和可扩展...

    javascript设计模式之迭代器模式

    外部迭代器通常包含三个方法:`next()`用于获取下一个元素,`isNotDone()`用于检查是否还有剩余元素,以及`getCurrentItem()`用于获取当前元素。在提供的示例代码中,`Iterator`构造函数创建了一个外部迭代器,用户...

    嵌套类、迭代器1

    在C++编程中,嵌套类(Nested Class)和迭代器(Iterator)是两种非常重要的概念,它们在软件设计和实现中发挥着关键作用。让我们深入探讨这些知识点。 首先,嵌套类是指一个类被定义在另一个类的内部,这样的内部...

    2 迭代器模式-MOOC课程内容.pdf

    当系统需要支持不同的数据结构,或者需要将数据遍历的细节对外部隐藏时,迭代器模式都是非常有用的。 此外,迭代器模式还支持并发遍历,这在多线程编程中尤为重要。通过迭代器模式,开发者可以安全地在多线程环境中...

    Lua 基础教程(十二)迭代器.pdf

    ### Lua基础教程(十二)迭代器 #### 一、迭代器概述 迭代器是一种重要的编程概念,用于遍历集合或容器中的元素。在Lua语言中,迭代器主要用于遍历表内的元素,表作为Lua中最基本的数据结构之一,常被用作数组和...

    java设计模式--迭代器设计模式.docx

    外部用户只需通过`Container.getIterator()`获取迭代器,然后调用迭代器的`hasNext()`和`next()`方法即可遍历容器内的元素。 ### 结论 迭代器模式在Java中扮演着重要的角色,它允许开发者以统一的方式遍历各种集合...

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

    与递归遍历不同,外部迭代器通常通过维护一个栈或队列来跟踪当前的遍历状态,避免了递归调用带来的额外开销和栈溢出风险。这使得代码更易于理解和维护,尤其在处理大型树结构时。 "GenericTreeEquality.java"可能...

Global site tag (gtag.js) - Google Analytics