函数式编程 介绍
我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面的这些操作是学习的重点。
现在我们将会逐渐接触函数式编程的方式.
比如我们要说的第一个foreach方法, 就是一个典型的函数式编程方式.
我们将一个函数当做参数 传递给另一个方法/函数
start...
- 遍历(foreach)
- 映射(map)
- 映射扁平化(flatmap)
- 过滤(filter)
- 是否存在(exists)
- 排序(sorted、sortBy、sortWith)
- 分组(groupBy)
- 聚合计算(reduce)
- 折叠(fold)
函数式编程的意义在哪?
函数是对象,可以作为参数传递。
函数除了是对象以为,函数也是一种逻辑的封装。
所以传递函数,本质上是传递计算逻辑
普通的编程形式,方法传递的参数是数据
但是函数式编程中,可以将函数进行传递,那么传递的是计算逻辑
回想,Java中也有类似的传递计算逻辑的写法:
- 反射(比如:匿名内部类,MapReduce)
那么,可以知道:Scala的函数式编程,底层是Java的反射