快速代码演示:【只关注reduce和fold从第四点开始看】
object HighLevelFunction extends App {
val l = List(1, 2, 3, 4, 5)
//1.map 逐个操作集合里面的每个元素
l.map((x: Int) => x + 1) //将List内的每个元素(x:Int) + 1
l.map(x => x + 1) //scala能帮我们推断出List内每个元素是Int,且只有一个元素时候,括号可以省略
l.map(_ + 1) //对List中的任意元素都 + 1
//遍历
l.map(_ + 1).foreach(print) //23456 List[Int]
println()
println("-------------")
//2.在map取出每个元素 + 1的基础上,使用filter过滤出 < 4的数字
l.map(_ + 1).filter(_ < 4).foreach(print) //23 List[Int]
println()
println("-------------")
//3.使用take取集合中的前3个元素
l.take(3).foreach(print) //123 List[Int]
println()
println("-------------")
//4.reduce
print( l.reduce(_ + _) ) //15 Int 将l集合中的前后元素两两相加 1+2 3+3 6+4 10+5
println()
println("-------------")
//5.reduceLeft = reduce
print( l.reduceLeft(_ - _) ) //-13 1 - 2 - 3 - 4 - 5 = -13
println()
println("-------------")
//6.reduceRight
print( l.reduceRight(_ - _) ) //3 ( 1 - ( 2 - ( 3 - ( 4 - 5 ))))
println()
println("-------------")
//7.fold(第一个括号代表初始值)
print( l.fold(0)(_ - _) ) //-15 0-1-2-3-4-5 = -15
println()
println("-------------")
//8.foldLeft = fold (0在最左边)
print( l.foldLeft(0)(_ - _)) //-15 0-1-2-3-4-5 = -15
println()
println("-------------")
//9.foldRight (0在最右边)
print( l.foldRight(0)(_ - _) ) //3 ( 1 - ( 2 - ( 3 - ( 4 - (5 - 0) ) ) ) )
}object HighLev