1

假设我有一些供应商(可能是无限的):

class Supplier  {
  def get(): Int = ??? // returns some numbers
}

我怎样才能将其转换为Stream

这是我的解决方案:

 val supplier = new Supplier
 val stream = Stream.iterate(supplier.get)(_ => supplier.get)

我不喜欢这个解决方案,因为我必须打supplier.get两次电话。有没有更简洁的方法?

4

1 回答 1

2

您可以使用continually

val supplier = new Supplier
val stream = Stream.continually(supplier.get)

它需要一个名称参数,因此get每次需要流的新元素时都会调用它。

于 2013-09-12T10:13:14.113 回答