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一样.