zoukankan      html  css  js  c++  java
  • Iterator && IteratorAggregate区别

    这两个都是系统的扩展类。

    首先看下他两的实质:

    从上图可以得知,两者同样继承了Traversable类,两者是兄弟关系。

    以下是这两个类的所处的层级:

    iterable

      array

      Traversable

        Iterator

          Generator

        IteratorAggragate

    两者的区别:第一次遇到iteratorAggragate,容易误认为是Iterator。实质不是iterator,而是聚合了Iterator。

    为什么有了Iterator,还需要IteratorAggregate呢?

    1、方便使用,继承Iterator类,可以实现遍历的过程,比较繁琐,好处是可控性高,如prev(),next(),rewind()等方法。而IteratorAggregate就是傻瓜似的,如下图

    注意:generator是特殊的iterator,遍历一次后,不能rewindable,即指针不能回到开头。若函数的参数

    function test(iterator $obj);

    导致代码可能出现意外。

  • 相关阅读:
    修改tomcat访问路径
    HTML img标签属性
    HTML marquee标签属性详解
    HTML input标签
    HTML iframe 标签
    Linux root默认密码问题
    [Linux]查看本机IP
    [Linux]命令行模式切换
    [Linux]命令root与other切换
    [Linux]XAMPP安装
  • 原文地址:https://www.cnblogs.com/huachengai/p/13255567.html
Copyright © 2011-2022 走看看