在scala中的Map函数中加下下划线

Fra*_*kie 1 scala

关于在map函数中使用下划线的快速问题,假设我有一个RDD如下:

val R_1 = sc.parallelize(List((1, 2), (3, 4), (5, 6)))
R_1.map(x => x._1 + x._2)
Run Code Online (Sandbox Code Playgroud)

结果是(3,7,11)

我用R_1.map(_._1 + _._2)这个时遇到错误 .

我不太了解scala lambda表达式中的下划线魔法.所以我的问题是R_1.map(x => x._1 + x._2)和之间有什么区别R_1.map(_._1 + _._2).有没有其他的写作方式R_1.map(x => x._1 + x._2)?任何帮助表示赞赏.

Ale*_*lec 6

每个连续的下划线意味着匿名函数的另一个参数.所以,{ _._1 + _._2 }对应于(a,b) => a._1 + b._2.

是的,还有另一种方法,使用模式匹配:

R_1.map { case (x,y) => x + y }
Run Code Online (Sandbox Code Playgroud)