scala.collection.breakOut vs widoki
Ta odpowiedź SO opisuje jakscala.collection.breakOut
może być używany do zapobiegania tworzeniu nieekonomicznych kolekcji pośrednich. Na przykład, tutaj tworzymy półproduktSeq[(String,String)]
:
val m = List("A", "B", "C").map(x => x -> x).toMap
UżywającbreakOut
możemy zapobiec tworzeniu tego półproduktuSeq
:
val m: Map[String,String] = List("A", "B", "C").map(x => x -> x)(breakOut)
Widoki rozwiązują ten sam problem a ponadto elementy dostępu leniwie:
val m = (List("A", "B", "C").view map (x => x -> x)).toMap
Zakładam stworzenieView
opakowania są dość tanie, więc moje pytanie brzmi: czy istnieje prawdziwy powód do używaniabreakOut
koniecView
s?