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 koniecViews?

questionAnswers(4)

yourAnswerToTheQuestion