flatmap详解

来源:互联网 发布:制作桌面的软件 编辑:程序博客网 时间:2024/06/05 15:24

flatMap

flatMap是一种常用的组合子,结合映射[mapping]和扁平化[flattening]。 flatMap需要一个处理嵌套列表的函数,然后将结果串连起来。

scala> val nestedNumbers = List(List(1, 2), List(3, 4))nestedNumbers: List[List[Int]] = List(List(1, 2), List(3, 4))scala> nestedNumbers.flatMap(x => x.map(_ * 2))res0: List[Int] = List(2, 4, 6, 8)

可以把它看做是“先映射后扁平化”的快捷操作:

scala> nestedNumbers.map((x: List[Int]) => x.map(_ * 2)).flattenres1: List[Int] = List(2, 4, 6, 8)

这个例子先调用map,然后可以马上调用flatten,这就是“组合子”的特征,也是这些函数的本质

0 0
原创粉丝点击