This SO answer描述如何scala.collection.breakOut
可用来防止产生浪费的中间集合。例如,我们在这里建立一个中间Seq[(String,String)]
:scala.collection.breakOut VS视图
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 solve the same problem,另外访问元素懒洋洋地:
val m = (List("A", "B", "C").view map (x => x -> x)).toMap
我假设View
包装的创作是相当便宜的,所以我的疑问句重刑是:是否有任何真正的理由使用breakOut
而不是View
?