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