十月二十二日课堂笔记

28 阅读1分钟

1.高阶函数

object class3 {
  def main(args: Array[String]): Unit = {
    val arr = Array(1,2,3,4,5)
    val fn = (x:Int) => x*2 //fn是一个字面量函数
    val arr1 = arr.map( fn ) //map是一个高阶函数,因为它的参数类型是函数!
    // 用for循环输出
    for(i <- arr1){
      println(i)
    }
  }

}

2.匿名函数

object class3 {
  def main(args: Array[String]): Unit = {
    val arr = Array(1,2,3,4,5)
    
    // val fn = (x:Int) => x*2 //fn是一个字面量函数
    //val arr1 = arr.map( fn ) //map是一个高阶函数,因为它的参数类型是函数!
    // 没必要去单独定义一个函数fn,这里直接写在map函数内,此时,它就是一个匿名函数
    val arr1 = arr.map(x => x * 2)
    // 用for循环输出
    for(i <- arr1){
      println(i)
    }
  }
}
object class4 {
  def main(args: Array[String]): Unit = {
    val arr = Array(-1,2,-3,-4,5)
    arr.foreach(println)
  }

}
object class4 {
  def main(args: Array[String]): Unit {
    val arr = Array(1,2,3,4,5)
    // x%2 == 0用来判断是否为偶数
    val arr1 = arr.filter({x -> x%2 == 0})
    arr1.foreach(println)
  }

}
object class4 {
  def main(args: Array[String]): Unit = {
    var arr = Array(1,2,3,4,5)
    var sum = arr.reduce((x,y) => x + y)
    // var s = arr.sum
    println(sum)
  }

}
object class4 {
  def main(args: Array[String]): Unit = {
    var arr = Array(-1,20,30,14)
    val max = arr.reduce((x,y) => if (x>y) x else y)
    println(max)
    // var s = arr.sum
    val min = arr.reduce((x, y) => if (x < y) x else y )
    println(min)
  }

}
object class5 {
  def main(args: Array[String]): Unit = {
    var arr = Array(-1, 20, 3, 2, 30)
    // 排序
    var arr1 = arr.sorted // 对于数值类型的数据,从小到大升序排列
    var arr2 = Array("banana", "zip", "b", "a", "apple")
    // 排序
    var arr3 = arr2.sorted // 对于字符类型的数组,按照字母表的顺序排序
    arr3.foreach(println)
  }
}