|
在Scala中,可以使用reduce这种二元操作对集合中的元素进行归约。reduce包含reduceLeft和reduceRight两种操作,前者从集合的头部开始操作,后者从集合的尾部开始操作。
val a = List(1,2,3,4,5,6)
println(a.reduce((x,y)=>if(x%2==0)x+y else x-y))
println(a.reduceLeft((x:Int,y)=>if(x%2==0)x+y else x-y))
println(a.reduceRight((x,y)=>if(x%2==0)x+y else x-y))
println(a.reduce(_-_))
println(a.reduceLeft(_-_))
println(a.reduceRight(_-_))
显示如下:
-1
-1
-1
-19
-19
-3
|
|