在用scala写spark程序的时候会经常碰到=>这种写法
官方文档给出的解释是
the tuple on the left of the arrow => is a parameter list and the value
of the expression on the right is what gets returned
意思就是:=>箭头左侧的元组是参数列表,右侧表达式的值是返回的值。
同时,=> 在scala中代表匿名函数(Anonymous Functions),表示创建一个函数实例。
注:所有的函数在scala中都是object(类的实例)
例1:(x: Int) => x + 1 和如下JAVA方法表示的含义一样:
public int function(int x){
return x+1;
}
例2:以下两段代码分别是scala中的匿名函数写法和不匿名函数写法
val salaries = Seq(20000, 70000, 40000)
val newSalaries = salaries.map(x => x * 2) // List(40000, 140000, 80000)
等于
val salaries = Seq(20000, 70000, 40000)
val doubleSalary = (x: Int) => x * 2
val newSalaries = salaries.map(doubleSalary) // List(40000, 140000, 80000)
说明:doubleSalary