11.5 折叠(fold
)
折叠的原理和reduce
一样. 可以把reduce
看成是flod
的简化版.
通过前面的学习, 我们知道reduce
是从前两个元素开始归纳的.
而fold
允许提供一个初始化值, 这个初始值是传递进去的函数的第一次执行时候的第一个参数, 后面的执行就和reduce
一样了.
package com.atguigu.day11.operate
object FoldDemo {
def main(args: Array[String]): Unit = {
var list1 = List(10, 1, 3, 5, 8, 9, 22, 89)
// 需求:计算1000减去集合中的所有的元素之后的差
val result: Int = list1.fold(1000)(minus)
println(result)
}
def minus(a: Int, b: Int) = {
a - b
}
}
注意:
foldLeft
,foldRight
原理和前面的reduceLeft
,reduceRight
一样.