fold与reduce基本一样,只是需要一个指定初始值参数,注意这个时候计算把初始值作为一个元素开始计算。
val ar1 = List(1, 2, 3, 4, 5)
println("fold(0)=",ar1.fold(0)(_ + _))
println("fold(100)=",ar1.fold(100)(_ + _))
println("foldLeft(0)=",ar1.foldLeft(0)(_-_))
println("foldRight(0)=",ar1.foldRight(0)(_-_))
结果输出:
(fold(0)=,15)
(fold(100)=,115)
(foldLeft(0)=,-15)
(foldRight(0)=,3)