我已经阅读了一些关于如何处理Seq[Option[x], Option[x]]
的帖子,但我有不同的情况,我有一个Option[Seq[x]]
。我正在努力映射这个,我想要的是:
val x: Option[Seq[String]] = ...
x.map((y: String) => ...)
而是获得x.map((y: Seq[String] =>)
当然我可以用理解来处理这个问题,也许这是正确的方法,但我很感激有关如何处理这个的建议
答案 0 :(得分:1)
您可以对实际getOrElse
使用map
至Seq
。
x.getOrElse(Nil).map((y:String) => ...)
答案 1 :(得分:1)
Option
也支持fold
操作:
x.fold(Seq[String]())((entry) => entry).map( ... )
我认为marteljn的解决方案更具可读性。
答案 2 :(得分:1)
或者简单地说:
x.map(_.map(y: String => ... ))
答案 3 :(得分:0)
几乎总有几种方式:
x.toSeq.flatten.map(string: String => ???)
x.toSeq.flatMap(_.map(string => ???))
和我个人的最爱:
x.fold(Seq.empty[String])(_.map(string => ???))