函数reduce
同flod,不需要初始值
格式
def reduce[A1 >: Int](op: (A1, A1) => A1): A1
数据
val a = Array(1,2,3,4,5)
scala> a.reduce((x,y)=>{println(x,y,x+y);x+y})
(1,2,3)
(3,3,6)
(6,4,10)
(10,5,15)
res88: Int = 15
函数reduceLeft
格式
override def reduceLeft[B >: Int](op: (B, Int) => B): B
scala> a.reduceLeft((x,y)=>{println(x,y,x+y);x+y})
(1,2,3)
(3,3,6)
(6,4,10)
(10,5,15)
res89: Int = 15
函数reduceRight
格式
override def reduceRight[B >: Int](op: (Int, B) => B): B
scala> a.reduceRight((x,y)=>{println(x,y,x+y);x+y})
(4,5,9)
(3,9,12)
(2,12,14)
(1,14,15)
res90: Int = 15
函数reduceLeftOption
格式
def reduceLeftOption[B >: Int](op: (B, Int) => B): Option[B]
scala> a.reduceLeftOption((x,y)=>{println(x,y,x+y);x+y})
(1,2,3)
(3,3,6)
(6,4,10)
(10,5,15)
res91: Option[Int] = Some(15)
函数reduceRightOption
格式
def reduceRightOption[B >: Int](op: (Int, B) => B): Option[B]
scala> a.reduceRightOption((x,y)=>{println(x,y,x+y);x+y})
(4,5,9)
(3,9,12)
(2,12,14)
(1,14,15)
res92: Option[Int] = Some(15)