高阶函数

25 阅读1分钟

#高阶函数的运用

/**
 *
 * 高阶函数:一种特殊的函数,它的参数或者返回值是函数类型。
 * 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))
  }