高阶函数

39 阅读2分钟

高阶函数:一种特殊的函数,它的参数、或者是返回值是函数

object scala27 {
  def main(args:Array[String]) :Unit={
    //定义一个数组
    val arr = Array(1,2,3,4)
    //提问:把arr中每个元素都变成自己的2倍,并返回一个新数组?
    val fn = (x:Int)=> x * 2
    //Array表表示数组,map就是他的方法。
    //map 就是一个高阶函数,它的参数是一个函数
    val arr1= arr.map(fn)

    for(i <- arr1){
      println(i)
    }
  }
}
object scala27 {
  //高阶函数:一种特殊的函数,它的参数、或者是返回值是函数
  def main(args:Array[String]) :Unit={
    //定义一个数组
    val arr = Array(1,2,3,4)
    //提问:把arr中每个元素都变成自己的2倍,并返回一个新数组?
    // val fn = (x:Int)=> x * 2
    //Array表表示数组,map就是他的方法。
    //map 就是一个高阶函数,它的参数是一个函数
    //val arr1 = arr.map(fn)
    val arr1= arr.map(x => x * 2)

    for(i <- arr1){
      println(i)
    }
  }
}
object scala28 {
  //高阶函数:一种特殊的函数,它的参数、或者是返回值是函数
  def main(args:Array[String]) :Unit={
    //定义一个数组
    val arr = Array(-1,2,-3,-4,5)
    //提问:把arr中每个元素都变成自己的2倍,并返回一个新数组?
    // val fn = (x:Int)=> x * 2
    //Array表表示数组,map就是他的方法。
    //map 就是一个高阶函数,它的参数是一个函数
    //val arr1 = arr.map(fn)
    //val arr1= arr.map(x => x * 2)
    val arr1 = arr.map(x => if (x >= 0) x else -x)
    for(i <- arr1){
      println(i)
    }
  }
}

foreach函数

object scala29 {
  def main(args:Array[String]) :Unit={
    //定义一个数组
    val arr = Array(-1,2,-3,-4,5)

    //arr.foreach(x =>{
    //print(x)
    //})
    //依次打印每个元素
    arr.foreach(println)
    //for(i <- arr1){
      //println(i)
    }
  //}
}

filter函数

任务:在数组中找出元素是偶数的,并组成新数组。

作用:对数组元素使用函数进行过滤。

object scala30 {
  def main(args:Array[String]) :Unit={
    //定义一个数组
    val arr = Array(-1,2,-3,-4,5)

    //arr.foreach(x =>{只保留arr中的偶数,并存放在一个新的数组中
    //filter的参数是一个函数
    //        如果这个函数返回ture,则当前的元素会保留下来。
    var arr1 = arr.filter(x => x%2 == 0)
    arr1.foreach(println)
    //for(i <- arr1){
      //println(i)
    }
  //}
}

def main(args: Array[String]): Unit = { 
val arr = Array(100,51,55,67,59,89) 
var arr1 = arr.map(x => if(x >= 56 && x <= 59)60 else x) 
arr1.foreach(println) } }