在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?
我想将a转换Map[Int, Any]为a SortedMap或a TreeMap.有一个简单的方法吗?
我有一个使用BitSet的库,我需要更改Set [Int]类型数据才能使用该库.
我想到的是使用.toSeq:_*操作,但我不确定这是从BitSet转换为Set [Int]还是反过来的有效方法.
scala> BitSet(Set(1,2,3).toSeq:_*)
res55: scala.collection.immutable.BitSet = BitSet(1, 2, 3)
scala> Set(BitSet(1,2,3).toSeq:_*)
res56: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?