scala map和flatMap

Posted 充实自己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala map和flatMap相关的知识,希望对你有一定的参考价值。

map和flatMap

 

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

scala>     val b = a.flatMap(f=>{
     |       try{
     |         Some(f/(f-1))
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
b: Seq[Int] = List(2, 1, 1, 1)

scala>     val b = a.map(f=>{
     |       try{
     |         Some(f/(f-1))
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
b: Seq[Option[Int]] = List(None, Some(2), Some(1), Some(1), Some(1))

 

 

flatMap类型需要一致

scala>     val d = a.flatMap(f=>{
     |       try{
     |         f/(f-1)
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
<console>:33: error: type mismatch;
 found   : Int
 required: scala.collection.GenTraversableOnce[?]
               f/(f-1)
                ^

scala>     val d = a.map(f=>{
     |       try{
     |         f/(f-1)
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
d: Seq[Any] = List(None, 2, 1, 1, 1)

 

以上是关于scala map和flatMap的主要内容,如果未能解决你的问题,请参考以下文章

如何使用`flatMap`和`map`填充Play框架+ Scala上的`list`?

Scala map与flatMap

Scala - 无法解析符号 flatMap

2021年大数据常用语言Scala(二十三):函数式编程 扁平化映射 flatMap

scala flatMap reduceLeft foldLeft

Scala:带有地图的期货,用于 IO/CPU 绑定任务的 flatMap