Scala函数编程

2019-09-25  本文已影响0人  你值得拥有更好的12138

函数式编程

我们将来使用Spark/Flink的大量业务代码都会使用到函数式编程。下面的这些操作是学习的重点。

遍历 | foreach

之前,学习过了使用for表达式来遍历集合。我们接下来将学习scala的函数式编程,使用foreach方法来进行遍历、迭代。它可以让代码更加简洁。

方法签名

foreach(f: (A) ⇒ Unit): Unit

说明

foreach API 说明
参数 f: (A) ⇒ Unit 接收一个函数对象<br />函数的输入参数为集合的元素,返回值为空
返回值 Unit

foreach执行过程

image.png

示例

有一个列表,包含以下元素1,2,3,4,请使用foreach方法遍历打印每个元素

参考代码

// 定义一个列表
scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

// 迭代打印
scala> a.foreach((x:Int)=>println(x))

使用类型推断简化函数定义

上述案例函数定义有点啰嗦,我们有更简洁的写法。因为使用foreach去迭代列表,而列表中的每个元素类型是确定的

示例

  1. 有一个列表,包含以下元素1,2,3,4,请使用foreach方法遍历打印每个元素
  2. 使用类型推断简化函数定义

参考代码

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

// 省略参数类型
scala> a.foreach(x=>println(x))

使用下划线来简化函数定义

当函数参数,只在函数体中出现一次,而且函数体没有嵌套调用时,可以使用下划线来简化函数定义

示例

  1. 有一个列表,包含以下元素1,2,3,4,请使用foreach方法遍历打印每个元素
  2. 使用下划线简化函数定义

参考代码

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

a.foreach(println(_))
上一篇 下一篇

猜你喜欢

热点阅读