scala 高阶函数

4 阅读1分钟

高阶函数

1.定义:一种特殊的函数,它的参数,或者返回值是参数

2.注意:

  • Array表示数组,map就是他的方法。
  • map 就是一个高阶函数,它的参数是一个函数。

2.1 高阶函数的两种形式

  • 接收函数作为参数
  • 返回函数作为结果

3.实例:

3.1 把arr中每个元素都变成自己的2倍,并返回一个新数组。

object basic38 {
  def main(args: Array[String]): Unit = {
// 定义一个数组
    val arr=Array(1,2,3,4)
    val fn=(x:Int)=>x*2
    val arr1=arr.map(fn)

    for(i<-arr1){
      println(i)
    }
  }
}

3.2 把arr中每个元素都变成自己的倍数,并返回一个新数组

object basic39 {
  /**
   * 高阶函数:一种特殊的函数,它的参数,或者返回值是参数
   * @param args
   */

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

3.3 把(-1,2,-3,-4)→(1,2,3,4)

object basic40 {
  /**
   * 高阶函数:一种特殊的函数,它的参数,或者返回值是参数
   * @param args
   */

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