在使用Streams练习时,我发现了一个像这样结束流的常见模式:
Stream.cons(lastValue, Stream.empty)
这似乎是一种常见的模式,可能是一种速记。也许是这样的?
Stream.finish(lastValue) // Not actual Scala code
Scala内置了这样的功能吗?
答案 0 :(得分:9)
自然选择Stream(lastValue)
一般不起作用,因为apply
不是懒惰的,但是当你不在乎你已经分配了值时,你可以使用它。 / p>
当你想要懒惰地计算这个值时,你可以使用Stream.fill(1)(lastValue)
,但是为什么人们会使用这个结构并不是很明显(例如,如果你想要一个非1的数字,它会让人怀疑)。 / p>
我赞成
lastValue #:: Stream.empty
亲自。
答案 1 :(得分:1)
试试Stream(lastValue)
。我认为你需要结束一个Stream。
您可以像
一样使用它3 #:: Stream(4)