函数

46 阅读1分钟

高阶函数

是一种特殊的函数,特殊之初在于:它指使其他函数作为参数或者返回值。

object Base43 {
def main(args:Array[String]):Unit = {
  val arr = Array(1,2,3,4,5)
  val arr1 = arr.map(x => x * 2 )
  for(i <- arr1){
    println(i)
  }
}
}
  • fn是一个字面量函数
  • map是一个高阶函数,因为它的参数类型是函数
  • 没有必要去单独定义一个函数fn,这里直接写在map函数内,此时,它就是一个匿名函数

(1,2,3,4,5) -> (1,4,9,16,25)

object Base44 {
  def main(args:Array[String]):Unit = {
    val arr = Array(1,2,3,4,5)
    val arr1 = arr.map(x => x * x)
    for(i <- arr1){
      println(i)
    }
  }
}

(-1,2,-3,-4) -> (1,2,3,4)


object Base44 {
  def main(args:Array[String]):Unit = {
    val arr = Array(-1,2,-3,-4,5)
    val arr1 = arr.map(x => if(x>0) x else -x)
    for(i <- arr1){
      println(i)
    }
  }
}
object Base45 {
  def main(args:Array[String]):Unit = {
    val arr = Array(1,2,3,4,5)
    var sum = arr.reduce((x,y) => x + y)
    println(sum)
  }
}
object Base46 {
  def main(args:Array[String]):Unit = {
    var arr = Array(1,20,0,14)
    val max = arr.reduce((x,y) => if (x > y) x else y)
    println(max)
    val min = arr.reduce(  )
    println(min)
  }
}
object Base47 {
  def main(args:Array[String]):Unit = {
    var arr = Array(1,2,3)
    val sum1 = arr.fold(100)((x,y)=>x+y)
    println(sum1)
  }
}