我需要产生一个java.lang.Iterable[T]
,其中T
的供应需要长时间运行。另外,在提供T
之后,将其包装,并进行进一步的计算以准备下一次迭代。
起初我以为我可以用Iterator.continually
来做到这一点。但是,在结果上调用toIterable
实际上会创建一个Stream[T]
-问题是急切地评估了头,这是我不希望的。
我怎么可以:
Iterable[T]
或Iterator[T]
将Iterable[T]
转换为Stream
?因为LazyList
是一个非常简单的API,所以从java.lang.Iterable
到它很简单。
scala.collection.Iterator