Этот ответ SO описывает, как scala.collection.breakOut
можно использовать для предотвращения создания расточительных промежуточных коллекций. Например, здесь мы создаем промежуточный Seq[(String,String)]
:
val m = List("A", "B", "C").map(x => x -> x).toMap
Используя breakOut
, мы можем предотвратить создание этого промежуточного Seq
:
val m: Map[String,String] = List("A", "B", "C").map(x => x -> x)(breakOut)
Views решает ту же проблему и, кроме того, элементы доступа лениво:
val m = (List("A", "B", "C").view map (x => x -> x)).toMap
Я предполагаю, что создание оберток View
довольно дешево, поэтому мой вопрос: есть ли настоящая причина использовать breakOut
над View
s?