scala 高阶函数

59 阅读1分钟

一. 高阶函数

object basic44 {
/*
*高阶函数:一种特殊的函数 它的参数 或者是返回值是函数
*
*  Ar
*/
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)
  }
 }
}

1.1. test01

//把(1,2,3,4,5)→(1,4,9,16,25)

val arr1 = arr.map(fn)
val arr1 = arr.map(x => x*x)
for (i <- arr1){
  println(i)
}

1.2. test02

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

val arr = Array(-1,2,-3,-4)
val arr1 = arr.map ( x => if (x >= 0) x else -x) //x的绝对值
for (i <- arr1){
  println(i)
}