reduceLeft神语法
val a = Array(20, 12, 6, 15, 2, 9)
1
2
3
4
5
6
7
8
|
scala> a.reduceLeft( _ + _ ) // 数组求和
res 0 : Int = 64
scala> a.reduceLeft( _ * _ ) // 数组求乘积
res 1 : Int = 388800
scala> a.reduceLeft( _ min _ ) // 数组求最小值
res 2 : Int = 2
scala> a.reduceLeft( _ max _ ) // 数组求最大值
res 3 : 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 y
scala> a.reduceLeft(f) res 0 : 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( _ + _ ) // 数组求和
res 0 : Int = 64
scala> a.reduceLeft( _ * _ ) // 数组求乘积
res 1 : Int = 388800
scala> a.reduceLeft( _ min _ ) // 数组求最小值
res 2 : Int = 2
scala> a.reduceLeft( _ max _ ) // 数组求最大值
res 3 : 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 y
scala> a.reduceLeft(f) res 0 : Int = 20
|
实现原理
第一、第二个数的比较结果再与第三个数进行比较,以此类推。x为上一次结果,y为本次比较数值