5
> scala> val myI = new Iterable[Int]{def iterator = Iterator.continually(1)} 
> java.lang.OutOfMemoryError: Java heap space
>   at java.util.Arrays.copyOf(Arrays.java:2882)    at
> <snip>

现在,这是预期的行为吗?我觉得这有点奇怪,它妨碍了我。

4

1 回答 1

10

这只是 REPL 过于努力地提供帮助 - 它试图打印出你的 newIterable作为它在返回值时所做的一部分。您可以将其粘贴在某些不打印其内容的容器中或覆盖toString.

scala> val myI = new Iterable[Int] { def iterator = Iterator.continually(1); 
     |   override def toString = "myI" }
myI: Iterable[Int] = myI
于 2013-06-22T12:15:10.713 回答