我正在试图压扁地图。不确定为什么1)正在工作,但2)不是。
scala> val m = Map(1->2, 2->4, 3->6)
m: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 2 -> 4, 3 -> 6)
1)
scala> m.flatMap(e => List(e._1, e._2)
| )
res11: scala.collection.immutable.Iterable[Int] = List(1, 2, 2, 4, 3, 6)
2)
scala> m.flatMap(List(_._1,_._2))
<console>:12: error: missing parameter type for expanded function ((x$1) => x$1._1)
m.flatMap(List(_._1,_._2))
^
<
答案 0 :(得分:7)
List(_._1, _._2)
相当于List(x => x._1, x => x._2)
。也就是说,使用_
的每个表达式都是它自己的lambda,两个lambdas都作为List
的参数给出。
使用_
快捷方式无法实现您想要的效果,因此您必须使用选项1.