相关疑难解决方法(0)

Scala 2.8 breakOut

在Scala 2.8中,有一个对象scala.collection.package.scala:

def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) =
    new CanBuildFrom[From, T, To] {
        def apply(from: From) = b.apply() ; def apply() = b.apply()
 }
Run Code Online (Sandbox Code Playgroud)

我被告知这会导致:

> import scala.collection.breakOut
> val map : Map[Int,String] = List("London", "Paris").map(x => (x.length, x))(breakOut)

map: Map[Int,String] = Map(6 -> London, 5 -> Paris)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?为什么breakOut被称为我的论据List?

scala scala-2.8 scala-collections

223
推荐指数
4
解决办法
3万
查看次数

Scala将Collection转换为按键映射的最佳方法是什么?

如果我有一个集合c型的T,有一个属性p上T(类型P,说的),什么是做一个最好的办法地图通过提取键?

val c: Collection[T]
val m: Map[P, T]
Run Code Online (Sandbox Code Playgroud)

一种方法如下:

m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }
Run Code Online (Sandbox Code Playgroud)

但现在我需要一个可变的地图.有没有更好的方法来做到这一点,以便它在一行,我最终得到一个不可变的地图?(显然我可以将上面的内容变成一个简单的库实用程序,就像在Java中一样,但我怀疑在Scala中没有必要)

scala map scala-collections

153
推荐指数
7
解决办法
13万
查看次数

标签 统计

scala ×2

scala-collections ×2

map ×1

scala-2.8 ×1