私はコードを持っています(ここにsentences
ありiterator
ます):
def count() = {
var count = 0
for(sentence <- sentences.toStream) count += sentence.words.size
count
}
そしてテスト:
// first
val wordCount1 = wordCounter.count()
wordCount1 must_== 10
// second time - should be same result
val wordCount2 = wordCounter.count()
wordCount2 must_== 10 // fails: result is 0
最後のテストは失敗しました:
'0' is not equal to '10'
Expected :10
Actual :0
しかし、私はsentences.toStream
上記のコードで使用しているのでstream
、それを持っていると思います (理論的には再利用できます)。
Q:なぜ失敗するのですか?
編集:toStream
それが役立つ
ことを望んでいました。ここで説明したように: (...「同じことをStream
複数回トラバースできます...」 )。イテレータに触れたことがないようなものです。ストリームを扱っています。
でもsentences.toStream
UP sentence-iterator
してしまったのでもう使えません。イテレータ自体に触れずにイテレータへのストリーム「リンク」を取得するようなロジックを実行することを期待していtoStream
ました。iterator
Ok..