什么是「;(行:字符串)=>;{};结构在Scala中称为?它是如何工作的?

什么是「;(行:字符串)=>;{};结构在Scala中称为?它是如何工作的?,scala,Scala,我开始学习Scala,我从 我不明白的是(line:String)=>{…}在做什么。行在哪里初始化?在我看来,这个程序似乎从rawData参数中获取了inline作为输入,但我不明白这是如何发生的 如果有人能解释这个Scala结构叫什么——或者更好,它是如何工作的——我将非常感激 它使用定义了一个函数,这类似于JavaScript和其他语言中的箭头函数 此语法提供了一种创建没有名称的函数的方法。这些可以由其他函数返回,分配给变量(有效地命名它们),作为参数传递给函数等等。它使用定义函数,这类似

我开始学习Scala,我从

我不明白的是(line:String)=>{…}在做什么。行在哪里初始化?在我看来,这个程序似乎从rawData参数中获取了inline作为输入,但我不明白这是如何发生的


如果有人能解释这个Scala结构叫什么——或者更好,它是如何工作的——我将非常感激

它使用定义了一个函数,这类似于JavaScript和其他语言中的箭头函数


此语法提供了一种创建没有名称的函数的方法。这些可以由其他函数返回,分配给变量(有效地命名它们),作为参数传递给函数等等。

它使用定义函数,这类似于JavaScript和其他语言中的箭头函数


此语法提供了一种创建没有名称的函数的方法。这些可以由其他函数返回,分配给变量(有效地命名它们),作为参数传递给函数等等…

。。。在函数内部定义匿名函数的动机是什么,如我的原始示例所示?函数只是返回匿名函数而不是值吗?是的。查看方法的名称
buildCategoricalAndLabelFunction
。不是“而是”值,函数就是值。有趣的。。。在函数内部定义匿名函数的动机是什么,如我的原始示例所示?函数只是返回匿名函数而不是值吗?是的。查看方法的名称
buildCategoricalAndLabelFunction
。函数不是“而不是”值,而是值。
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))
   }
}