【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第3小节(1)

函数式编程的核心特点之一是把函数做为参数传递给函数、在函数内部能够定义函数等。 编程

1,动手实战Scala高阶函数app

声明一个List集合实例:函数式编程

 

List集合所在的包已经被预约义自动导入,因此此处不须要导入包,同时,这里直接使用List实例化对象,实际上是用来List的object对象的apply方法;函数

咱们使用map函数把List中的每一个值都乘以2:学习

在上面的代码中,x表示l中每一个一个元素,map对l中的每个元素进行遍历操做,因为List中只有一种类型的元素,因此咱们在执行map操做的时候能够省略掉其类型,以下所示:spa

List集合中只有一个参数的时候,咱们能够去掉参数中的括号:命令行

在只有一个参数的状况下,更简洁和正常的写法以下所示:对象

经常使用的高阶函数有map、filter、reduce等,咱们在稍后会作介绍。ip

2,动手实战Scala中的集合源码

 集合主要有List、Set、Tuple、Map等,咱们下面以动手实战的方式来学习。

咱们在Eclipse这个IDE中建立一个List实例:

此时咱们看一下其代码实现:

源代码中说明了其内部是apply的方式来完成实例化的;

一样的方式咱们能够实例化Set:

此时也能够看一下Set实例化对象的实现:

接下来咱们在命令行终端中看一下集合的操做,首先看一下Set:

能够发现Set中不会存在重复的元素。

下面看一下Tuple的声明和使用:

从上述代码中能够看出源码访问的时候下标是从1开始的;

对Tuple而言,若是只有两个元素的时候还可使用下述方式建立:

 

接下来看一下Map的定义:

Map自己使用的是可变参数的方式,因此能够给Map赋多个值:

下面看一下Option类型,Option表明了一个无关紧要的值:

Option有两个子类:Some和None,下面咱们看Option的使用:

接下来看一下filter的处理:

下面看一下对集合的zip操做:

下面看一下partition对集合的切割操做:

咱们可使用flatten的多集合进行扁平化操做:

flatMap是map和flatten操做的结合,先进行map操做而后进行flatten操做:

相关文章
相关标签/搜索