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

jav*_*dba 2 scala map

这是一张香草scala地图:

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

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

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

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

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

sen*_*nia 5

你应该使用模式匹配:

m.map{ case (a, b) =>  b}
Run Code Online (Sandbox Code Playgroud)

地图条目只是一个Tuple2.

  • 顺便说一句,这不是一个'PartialFunction`,只是一个匿名的模式匹配 (2认同)