我开始学习Scala,我已经遇到了来自https://github.com/sryza/aas/blob/master/ch05-kmeans/src/main/scala/com/cloudera/datascience/kmeans/RunKMeans.scala的这段代码
def buildCategoricalAndLabelFunction(rawData: RDD[String]): (String => (String,Vector)) = {
...
(line: String) => {
val buffer = line.split(',').toBuffer
...
val label = buffer.remove(buffer.length - 1)
val vector = buffer.map(_.toDouble)
...
(label, Vectors.dense(vector.toArray))
}
}
我不明白的是(line:String)=> {...} 是在做。线路在哪里被初始化?在我看来,该程序正在作为rawData参数的输入,但我不明白这是怎么回事。
如果有人能够解释这个Scala结构被称为什么 - 或者甚至更好,它是如何工作的 - 我真的很感激它!
答案 0 :(得分:2)
它使用anonymous function syntax定义一个函数,这类似于JavaScript和其他语言中的箭头函数。
此语法提供了一种创建没有名称的函数的方法。这些可以由其他函数返回,分配给变量(有效地命名它们),作为参数传递给函数等......