加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala中返回一个迭代器?

发布时间:2020-12-16 09:37:10 所属栏目:安全 来源:网络整理
导读:为了能够从方法/类返回迭代器,我该怎么办?如何将这个特质添加到课堂? 解决方法 您可以扩展 Iterator,这将要求您实现下一个和hasNext方法: class MyAnswer extends Iterator[Int] { def hasNext = true def next = 42 } 但是,如果扩展Iterable需要实现
为了能够从方法/类返回迭代器,我该怎么办?如何将这个特质添加到课堂?

解决方法

您可以扩展 Iterator,这将要求您实现下一个和hasNext方法:

class MyAnswer extends Iterator[Int] {
    def hasNext = true
    def next = 42
  }

但是,如果扩展Iterable需要实现元素(或2.8中的迭代器),您将获得更大的灵活性:

class MyAnswer extends Iterable[Int] {
    def iterator = new Iterator[Int] {
      def hasNext = true
      def next = 42
    }
  }

一个常见的成语似乎是将迭代器暴露给某些私人收藏,如下所示:

class MyStooges extends Iterable[String] {
    private val stooges = List("Moe","Larry","Curly")
    def iterator = stooges.iterator
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读