Scala学习进击Spark(七): Scala函数高阶操作
字符串高级操作
多行
匿名函数
currying函数
高阶函数
map的使用
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