scala.collection.breakOut vs ansichten

Diese SO Antwort beschreibt wiescala.collection.breakOut kann verwendet werden, um zu verhindern, dass verschwenderische Zwischensammlungen erstellt werden. Zum Beispiel erstellen wir hier ein ZwischenproduktSeq[(String,String)]:

val m = List("A", "B", "C").map(x => x -> x).toMap

Durch die NutzungbreakOut Wir können die Entstehung dieser Zwischenstufe verhindernSeq:

val m: Map[String,String] = List("A", "B", "C").map(x => x -> x)(breakOut)

Views lösen das selbe Problem und zusätzlich träge Zugriffselemente:

val m = (List("A", "B", "C").view map (x => x -> x)).toMap

Ich übernehme die Schaffung derView Wrapper sind ziemlich billig, daher lautet meine Frage: Gibt es einen wirklichen Grund, sie zu verwenden?breakOut ÜberViews?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage