高阶函数

28 阅读1分钟
object fwh29 {

  def main(args: Array[String]): Unit = {
    val arr = Array(1,2,3,4,5)
    val fn = (x:Int) => x * 2 // fn 是一个字面量函数
    val arr1 = arr.map( fn )  // map是一个高阶函数,因为它的参数类型是 函数!

    // 用for循环输出
    for(i <- arr1) {
      println(i)
    }
  }
}

输出结果

image.png

object Base55 {
  def main(args: Array[String]): Unit = {
    //    x*2
    //  }
    val arr = Array(1,2,3,4,5)

    //  val fn = (x:Int) => x * 2 // fn 是一个字面量函数
    //  val arr1 = arr.map( fn )  // map是一个高阶函数,因为它的参数类型是 函数!

    // 没有必要去单独定义一个函数fn,这里直接写在map函数内,此时,它就是一个匿名函数
    val arr1 = arr.map(x => x * 2)

    // 用for循环输出
    for(i <- arr1) {
      println(i)
    }
  }
}

输出结果

image.png

通过修改val arr1 = arr.map(x => x * 2) 可以达到改变运算过程从而改变结果