4 函数式编程基础

函数的定义与使用
定义函数最通用的方法是作为某个类或单例对象的成员,这种函数被称为方法。
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
函数类型和函数值
字面量
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
函数字面量
整型可以把具体值在方法调用中传来传去->函数可以想整型值一样在不同的方法调用中操作 传递
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
函数的输入参数类型和返回值类型一起构成函数的类型。
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础

  • 当参数只有一个时,圆括号可以省略
  • 只有存在多个参数时,圆括号才是必须的

【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
匿名函数(Lambda表达式)
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
格式:
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
自动推断类型,不用声明:

【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
省略num类型声明不可
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
若给出类型说明,不用专门类型声明
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
_的作用,函数字面量仅出现一次
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
高阶函数,函数的参数仍然是函数
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础

针对容器的操作

Scala容器的标准遍历方法
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
注:元组对象不需要加类名。

映射操作-map方法和flatMap方法
map:一对一映射
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
flatMap:一对多映射
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
过滤操作
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
规约
reduce(f)
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
fold方法:带初始值
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础

函数式编程实例WordCount

【Spark编程基础(2.4)】Scala语言基础—函数式编程基础
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础

相关文章: