根据 Map 对象上的 map 方法的 scaladoc,它应该返回一个新的 Map:
def map [B] (f: ((A, B)) ⇒ B) : Map[B]
“返回一个新的地图,通过将给定的函数 f 应用于该地图的每个元素并收集结果。”
但它没有:
scala> val countries = Map("NO" -> "Norway", "US" -> "United States", "DE" -> "Germany")
countries: scala.collection.immutable.Map[java.lang.String,java.lang.String] = Map((NO,Norway), (US,United States), (DE,Germany))
countries map { _._1 }
res4: scala.collection.immutable.Iterable[java.lang.String] = List(NO, US, DE)
不过,这种行为是我所期望的。那么文档是错误的,还是我遗漏了什么?