scala當中的reduce可以對集合當中的元素進行歸約操作。
reduce包含reduceLeft和reduceRight。reduceLeft就是從左向右歸約,reduceRight就是從右向左歸約。
示例代碼
scala> val list = List(1,2,3,4,5)
list: List[Int] = List(1, 2, 3, 4, 5)
scala> list.reduceLeft(_ + _)
res0: Int = 15
scala> list.reduceRight(_ + _)
res1: Int = 15
解釋
其中下劃線是占位符,兩個下劃線表示歸約的規則是使用前后兩個元素,中間的加號,用來表示對元素的操作,這里我們使用的是加法。上面的運算就是從左到右相加。
特別的
如果我們不指定reduce是left還是right默認情況下會使用reduceLeft執行操作。
scala> val list = List(1,2,3,4,5)
list: List[Int] = List(1, 2, 3, 4, 5)
scala> list.reduce(_ - _)
res3: Int = -13