美文网首页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