Scala--reduceLeft
reduceLeft神语法
val a = Array(20, 12, 6, 15, 2, 9)
|
1
2
3
4
5
6
7
8
|
scala> a.reduceLeft(_ + _) // 数组求和res0: Int = 64scala> a.reduceLeft(_ * _) // 数组求乘积res1: Int = 388800scala> a.reduceLeft(_ min _) // 数组求最小值res2: Int = 2scala> a.reduceLeft(_ max _) // 数组求最大值res3: Int = 20 |
使用函数
自定义函数实现数组求最大值功能
|
1
2
3
4
|
scala> val a = Array(20, 12, 6, 15, 2, 9)scala> val f = (x:Int, y:Int) => x max yscala> a.reduceLeft(f)res0: Int = 20 |
实现原理
第一、第二个数的比较结果再与第三个数进行比较,以此类推。x为上一次结果,y为本次比较数值
使用神语法
scala> val a = Array(20, 12, 6, 15, 2, 9)
|
1
2
3
4
5
6
7
8
|
scala> a.reduceLeft(_ + _) // 数组求和res0: Int = 64scala> a.reduceLeft(_ * _) // 数组求乘积res1: Int = 388800scala> a.reduceLeft(_ min _) // 数组求最小值res2: Int = 2scala> a.reduceLeft(_ max _) // 数组求最大值res3: Int = 20 |
使用函数
自定义函数实现数组求最大值功能
|
1
2
3
4
|
scala> val a = Array(20, 12, 6, 15, 2, 9)scala> val f = (x:Int, y:Int) => x max yscala> a.reduceLeft(f)res0: Int = 20 |
实现原理
第一、第二个数的比较结果再与第三个数进行比较,以此类推。x为上一次结果,y为本次比较数值

浙公网安备 33010602011771号