高阶函数

19 阅读1分钟
object basic49 {
  /**
   * map: 映射。把一个元素换成另一个元素
   */
  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 basic49 { def main(args: Array[String]): Unit = { // 定义一个数组 val arr = Array(1,2,3,4) // 提问: 把arr中每个元素都变成自己的2倍,并返回一个新数组?

val arr1 = arr.map( x => x * 2 )

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

} }

练习 1:将 (1,2,3,4,5) 转换为 (1,4,9,16,25)(元素求平方)

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

练习 2:将 (-1,2,-3,-4) 转换为 (1,2,3,4)(元素取绝对值)

object Exercise2 {
  def main(args: Array[String]): Unit = {
    val arr = Array(-1,2,-3,-4)
    val arr1 = arr.map(x => math.abs(x))
    for (i <- arr1) {
      println(i)
    }
  }
}
```
```