在scala中创建文件读取的延迟序列

时间:2013-02-28 03:59:06

标签: scala lazy-evaluation

我想创建延迟序列以从Scala中的输入流中读取值。

import java.util._

object Main {
    val input = new Scanner(System.in)
    def main(args: Array[String]) {
        val it = new MyIt().take(5)

    }
    class MyIt extends Iterator[Int] {
        def hasNext = true
        // def next = 29
        def next = input.nextInt
    }
}

当我将next = 29更改为next = input.nextInt时,它不再编译抱怨MyIt没有成员。看起来我完全误解了一些东西。你能不能给我提示(或者链接到关于懒惰序列的好文章 - 谷歌有很多结果,但是垃圾太多了,似乎 - 所以我迷路了)

1 个答案:

答案 0 :(得分:2)

import java.util._使用scala.collection.Iterator覆盖scala(默认情况下,通过java.util.Iterator包对象中的类型别名提供)。只需将导入更改为import java.util.Scanner

即可