Scala高阶函数

50 阅读1分钟

懒洋洋02.jpg

高阶函数定义

是一种特殊的函数,特殊之处在于:它的参数或者返回值是函数类型

Scala的常见高阶函数包括map、flatten、flatmap、foreach、reduce、filterfold等。

map函数

00A41D0F.png 作用:通过对数组的每一个元素执行一个函数 来构建一个新数组。

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

val arr1 = Array(1,2,3,4,5,6)  
val arr2 = arr1.map(x=>x*2)  
for(i <- arr2){  
  println(i)  
}

例如:

/*  高阶函数 一种特殊的函数 它的参数或者返回值是函数类型
 1.map函数
*/
def main(args: Array[String]): Unit = {
 val arr1 = Array(1,2,3,4,5,6)
 //Array是一个构造器 用来定义一个数组
 // arr1就是一个数组对象 它有很多方法 其中就有map
 //for 循坏来输出数组中每一个元素

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

 //for 循坏来输出数组中每一个元素
 for (i <- arr2){
   println(i)
 }
}

00A5B294.png [练] :把(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 arr2 = arr1.map(x => x*x)
  for (i <- arr2){
    println(s"${i}")
  }
}

00A5B294.png [练] :把(-1,2,-3,-4) → (1,2,3,4)

def main(args: Array[String]): Unit = {
  val arr3 = Array(-1,2,-3,-4)
  val arr4 = arr1.map(x => if (x>0) x else -x)
  for (i <- arr4){
    println(i)
  }
}