Scala学习进击Spark(七): Scala函数高阶操作

字符串高级操作
多行
Scala学习进击Spark(七): Scala函数高阶操作_第1张图片
Scala学习进击Spark(七): Scala函数高阶操作_第2张图片
匿名函数
Scala学习进击Spark(七): Scala函数高阶操作_第3张图片
匿名函数的体现
currying函数
Scala学习进击Spark(七): Scala函数高阶操作_第4张图片
高阶函数
在这里插入图片描述
map的使用
Scala学习进击Spark(七): Scala函数高阶操作_第5张图片
Scala学习进击Spark(七): Scala函数高阶操作_第6张图片
filter的使用
在这里插入图片描述
reduce
scala中集合类iterator特质的化简和折叠方法
c.reduceLeft(op)这样的调用将op相继应用到元素,如:
eg:

val a = List(1,7,2,9)
val a1 = a.reduceLeft(_ - _)//      ((1-7) - 2) - 9 = -17

c.foldLeft(0)(_ * _)方法

val a2 = a.foldLeft(0)(_ - _) //    0-1-7-2-9 = -19

对于foldLeft方法还有一种简写,这种写法的本意是让你通过/:来联想一棵树的样子
对/:操作符来说,初始值是第一个操作元本题中是0,:后是第二个操作元a

val a3 = (0 /: a)(_ - _) //      等价于a.foldLeft(0)(_ - _)

scala同样也提供了foldRight或:\的变体,计算

val a4 = a.foldRight(0)(_ - _)//    1-(7-(2-(9-0))) = -13
val a5 = (a :\ 0)(_ - _)   //    等价于a.foldRight(0)(_ - _)

flatten
在这里插入图片描述
将list中的元素压瘪,整合为一个list

你可能感兴趣的:(Scala学习进击Spark(七): Scala函数高阶操作)