Ich möchte Stream-Klasse in Scala verwenden, um eine gegebene Liste unendlich zu wiederholen.Scala, wiederhole eine endliche Liste unendlich
Zum Beispiel die Liste (1,2,3,4,5) Ich möchte einen Stream erstellen, der mir gibt (1,2,3,4,5,1,2,3,4,5,1 , 2,3 ....)
So dass ich den Take-Vorgang wickeln kann. Ich weiß, dass dies auf andere Weise implementiert werden kann, aber ich möchte es aus irgendeinem Grund tun, nur Humor mich :)
So ist die Idee, dass mit diesem unendlichen Zyklus aus einer Liste erstellt, kann ich Take-Operation verwenden, und wenn es das Ende der Liste erreicht, wird es zyklisch.
Wie mache ich einen Stream, der einfach eine gegebene Liste wiederholt?
Ich mochte diese Antwort am besten, ständig auf dem Stream Companion-Objekt ist wirklich das, was ich gesucht habe. Auch kombiniert mit flatten und tolist bekomme ich genau das, was ich will :) BTW, somestream.join.take (10) .toList, kann jemand näher auf die Notwendigkeit für object.function() Notation und warum es hier benötigt wird? Normalerweise können Sie "seq take 10" haben und etwas wie "seq take 10.toList" funktionieren? – Felix
Ich denke, es ist erwähnenswert, dass "Stream.continually()" war offenbar nicht in früheren Versionen von 2,8 – Felix
In 2.7, "Stream.continually" war "Stream.const" und "streams.flatten" war "Stream.concat (Streams) ' – retronym