美文网首页Scala
scala-19-reduce

scala-19-reduce

作者: chen_666 | 来源:发表于2020-04-06 22:57 被阅读0次
object ReduceDemo01 {
  def main(args: Array[String]): Unit = {
    /*
    使用化简的方式来计算list集合的和
     */
    val list = List(1, 20, 30, 4, 5)
    val res = list.reduceLeft(sum) //接收一个函数时,也可以直接传入一个匿名函数

    //执行的流程分析
    //步骤 1 (1 + 20)
    //步骤 2 (1 + 20) + 30
    //步骤 3 ((1 + 20) + 30) + 4
    //步骤 4 (((1 + 20) + 30) + 4) + 5 = 60

    println("res="+res) // 60

  }

  def sum(n1: Int, n2: Int): Int = {
    println("sum被调用~~")
    n1 + n2
  }
}
object ReduceExercise01 {
  def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3, 4, 5)

    def minus(num1: Int, num2: Int): Int = {
      num1 - num2
    }

    // (((1-2) - 3) - 4) - 5 = -13
    println(list.reduceLeft(minus)) // 输出? -13
    // 1 - (2 - (3 -(4 - 5))) = 3
    println(list.reduceRight(minus)) //输出? 3
    // reduce 等价于 reduceLeft
    println(list.reduce(minus))

    println("minval=" + list.reduceLeft(min)) // 1
  }

  //求出最小值
  def min(n1: Int, n2: Int): Int = {
    if (n1 > n2) n2 else n1
  }
}

相关文章

网友评论

    本文标题:scala-19-reduce

    本文链接:https://www.haomeiwen.com/subject/clcwphtx.html