匿名函数
1、匿名函数
没有名字函数称为匿名函数
2、匿名函数的定义
(x:Int)=>{函数体}
x:表示参数,Int:表示参数类型,=>视为转换器(不怎么描述合适,请合适名称和理解可以留言),函数体表示具体代码逻辑
3、传递匿名函数精简原则:
(1)参数的类型可以省略,会根据形参进行自动的推导
(2)类型省略之后,发现只有一个参数,则圆括号可以省略;反之没有参数和参数个数超过1个是不能省略括号。
(3)匿名函数函数体如果只有一行,则大括号也可以省略
(4)如果参数只出现一次,则参数省略且后面参数可以用_代替
4、匿名函数
定义一个集合
val intList = List(1, 2, 3)
定义一个匿名函数
val doubledInts = intList.map((i: Int) => i * 2)
编译器可以推导出i 是Int类型,所有可以去掉Int
val doubledInts = intList.map((i) => i * 2)
只有一个变量可以去掉i的括号
val doubledInts = intList.map(i => i * 2)
因为当参数在函数中只出现一次时,Scala 允许您使用 _ 符号而不是变量名,所以代码可以进一步简化:
val doubledInts = intList.map(_ * 2)