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

为了能够从方法/类返回迭代器,我该怎么办?如何将这个特质添加到课堂?
您可以扩展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
  }
翻译自:https://stackoverflow.com/questions/2135462/how-do-you-return-an-iterator-in-scala

转载注明原文:如何在Scala中返回一个迭代器?