scala fold&foldLeft&foldRight
原创
©著作权归作者所有:来自51CTO博客作者塞上江南o的原创作品,请联系作者获取转载授权,否则将追究法律责任
scala outline
scala outline
scala fold&foldLeft&foldRight
def main(args: Array[String]): Unit = {
val list = List(3, 2, 4)
/*fold方法使用了函数柯里化,存在两个参数列表
第一个参数列表为 : 零值(初始值)
第二个参数列表为: 简化规则*/
val res1: Double = list.fold(10)(_ - _) // 10-3-2-4
val res2: Double = list.foldLeft(10)(_ - _) // 10-3-2-4
val res3: Double = list.foldRight(10)(_ - _) // 先翻转为(4,2,3),然后4-10=-6;2-(-6)=8;3-8=-5
println(res1)
println(res2)
println(res3)
}
结果:
1.0
1.0
-5.0