10.21

36 阅读1分钟
  1. 定义数组:创建了一个整数数组 arr1 = Array(1, 2, 3, 4, 5, 6)
  2. 定义映射函数val fn = (x: Int) => x * 2 是一个函数字面量,功能是接收一个整数并返回其两倍值。
  3. 调用 map 高阶函数arr1.map(fn) 中,map 是数组的高阶函数(参数为函数类型),它会遍历 arr1 的每个元素,将 fn 函数应用到每个元素上,最终返回一个新数组 arr2(元素为原数组元素的两倍)。
object base48 {
  /**
   * 高阶函数:一种特殊的函数,它的参数或者返回值是函数类型。
   * 1. 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 循环来输出数组中每个元素
    for (i <- arr2) {
      println(i)
    }
  }
}

image.png

object base49 {
  /**
   * map 的练习题
   */
  def main(args: Array[String]): Unit = {
    val arr1 = Array(1, 2, 3, 4, 5)
    val arr2 = arr1.map(x => x * x)

    for (i <- arr2) {
      print(i + " ")
    }

    val arr3 = Array(-1, 2, -3, 4)
    // 绝对值
    val arr4 = arr3.map(x => if (x > 0) x else -x)

    println()
    for (i <- arr4) {
      print(i + " ")
    }
  }
}