我在使用Scala的SortedMap [A,B]时遇到了一些未经授权的陌生感.如果我将SortedMap [A,B]"a"的引用声明为Map [A,B]类型,那么对"a"的映射操作将产生一个非有序映射实现.
例:
import scala.collection.immutable._
object Test extends App {
val a: Map[String, String] = SortedMap[String, String]("a" -> "s", "b" -> "t", "c" -> "u", "d" -> "v", "e" -> "w", "f" -> "x")
println(a.getClass+": "+a)
val b = a map {x => x} // identity
println(b.getClass+": "+b)
}
Run Code Online (Sandbox Code Playgroud)
以上的输出是:
class scala.collection.immutable.TreeMap:Map(a - > s,b - > t,c - > u,d - > v,e - > w,f - > x)
class scala.collection.immutable.HashMap $ HashTrieMap:Map(e - > w,f - …
collections functional-programming scala sortedmap higher-order-functions