#高阶函数的运用
/**
*
* 高阶函数:一种特殊的函数,它的参数或者返回值是函数类型。
* 1.map函数
*
* */
def main(args: Array[String]): Unit = {
val arr1 = Array(1,2,3,4,5,6)
//Arry是一个构造器,用来定义一个数组。
//arry1就是一个数组对象,它有很多的方法,其中就有map。
//for 循环来输出数组中每个元素
val fn = (x:Int) => x * 2
//fn是一个函数,它被传给了map。map是一个高阶函数
val arr2 = arr1.map(fn)
// for 循环来输出数组中每个元素
for(i <- arr2){
println(i)
#简化写法
Scala的函数字面量的简化方式有两种方式:
第一种方式为:_(占位符)。如果函数中的参数在方法体中只使用了一次,可以用_替换。
第二种方式为:只有一个表达式时,可以省略括号。
object base45 {
/* *函数字面量的简化写法
* 1.代码只有一句,省略{} *
2.—占位符表示形参
*/
// val getSum = (x:Int , y:Int) => { x + y }
//省略{} val getSum1 = (x:Int , y:Int) => x + y
//使用_代替形参 val getSum2 = (_:Int) + (_:Int)
//使用_代替形参。(Int,Int)=>Int 就是getSum3的类型
val getSum3:(Int,Int) => Int = _ + _
def main(args: Array[String]): Unit = {
println(getSum(10,20)) println(getSum1(10,20))
println(getSum2(10,20)) println(getSum3(10,20))
}