我阅读了一个项目的源代码,发现:
val sampleMBR = inputMBR.map(_._2).sample
inputMBR
是一个元组。
函数map
的定义是:
map[U classTag](f:T=>U):RDD[U]
看来 map(_._2)
是 map(x => (x._2))
的简写。
谁能告诉我这些速记规则?
最佳答案
_ 语法可能有点令人困惑。当 _ 单独使用时,它代表匿名函数中的一个参数。所以如果我们成对工作:
map(_._2 + _._2)
将是 map(x, y => x._2 + y._2)
的简写。当 _ 用作函数名称(或值名称)的一部分时,它没有特殊含义。在本例中,x._2
返回元组的第二个元素(假设 x 是元组)。
关于scala - Apache-Spark : What is map(_. _2) 的简写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246440/