高阶函数1

96 阅读1分钟

高阶函数的定义

一种特殊的函数,它的参数或者返回值是函数类型

map函数

作用:通过对数组的每一个元素应用一个函数来构建一个新数组。

语法: 新数组 = 旧数组.map(旧元素=>新元素)

代码示例

def main (args: Array[String]): Unit = {
  val arr1 = Array(1,2,3,4,5,6)
  // Array 是一个构造器,用来定义一个数组
  // arr1 就是一个数组对象,它有很多的方法,其中就有map
  // for 循环来输出数组中的每个元素

  val fn = (x:Int) => x * 2
  // fn是一个函数,它被传给了map。map是一个高阶函数
  val arr2 = arr1.map(fn)

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

案例

[练] :把(1,2,3,4,5) → (1,4,9,16,25)

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

[练] :把(-1,2,-3,-4) → (1,2,3,4)

def main (args: Array[String]): Unit = {
  val arr1 = Array(-1,2,-3,-4)

  // 绝对值
  val fn = (x:Int) => if(x>0) x else -x
  val arr2 = arr1.map(fn)
  for(i <- arr2){
    println(i)
  }
}

foreach函数

作用:对数组的每一个元素应用函数。

语法:数组.foreach(元素=>{})

/*
foreach
   是数组的每一个元素都执行一次 函数
 */
def main (args: Array[String]): Unit = {
  // 把数值为偶数的留下来
  val arr1 = Array(1,2,3,4,5)
  arr1.foreach(print)

  arr1.foreach(println)
}