【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第3小节(1)
【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第3小节(1)
Spark亚太研究院 发表于3年前
【Spark亚太研究院系列丛书】Spark实战高手之路-第2章动手实战Scala第3小节(1)
  • 发表于 3年前
  • 阅读 125
  • 收藏 5
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

函数式编程的核心特色之一是把函数作为参数传递给函数、在函数内部可以定义函数等。 

1,动手实战Scala高阶函数

声明一个List集合实例:

 

List集合所在的包已经被预定义自动导入,所以此处不需要导入包,同时,这里直接使用List实例化对象,其实是用来List的object对象的apply方法;

我们使用map函数把List中的每个值都乘以2:

在上面的代码中,x表示l中每个一个元素,map对l中的每一个元素进行遍历操作,由于List中只有一种类型的元素,所以我们在执行map操作的时候可以省略掉其类型,如下所示:

List集合中只有一个参数的时候,我们可以去掉参数中的括号:

在只有一个参数的情况下,更简洁和正常的写法如下所示:

常用的高阶函数有map、filter、reduce等,我们在稍后会做介绍。

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操作:

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 64
博文 73
码字总数 35236
×
Spark亚太研究院
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: