Scala:如何构建基本的地图条目

时间:2013-12-14 20:12:48

标签: scala map

这是一张香草scala地图:

scala> val m = Map( 'a'-> '1', 'b' -> 2)
m: scala.collection.immutable.Map[Char,AnyVal] = Map(a -> 1, b -> 2)

Map iterator()方法返回表示(键,值)的元组。因此,如果我们想要看到地图的价值,我们可以这样做:

scala> m.map( a => a._2)
res0: scala.collection.immutable.Iterable[AnyVal] = List(1, 2)

但是我们如何解构地图条目呢?以下不起作用:

scala> m.map( (a,b) =>  b)
<console>:10: error: wrong number of parameters; expected = 1
              m.map( (a,b) =>  b)
                       ^

2 个答案:

答案 0 :(得分:5)

你应该使用模式匹配:

m.map{ case (a, b) =>  b}

地图条目只是Tuple2

答案 1 :(得分:3)

以防您不想编写case {...}语法:

scala> import Function.{ tupled => $ }
import Function.{tupled=>$}

scala> Map(1 -> "a") map $((a,b) => b)
res1: scala.collection.immutable.Iterable[String] = List(a)

scala> Map(1 -> "a") map $((a,b) => a -> s"$b!")
res2: scala.collection.immutable.Map[Int,String] = Map(1 -> a!)