如何筛选没有列表?
如果我在Scala中有一个List[Option[A]]
,那么过滤掉None
值的惯用方法是什么?
一种方法是使用以下内容:
val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye")) someList.filter(_ != None)
有没有更“地道”的方式? 这似乎很简单。
如果你想同时摆脱选项,你可以使用flatten
:
scala> someList.flatten res0: List[String] = List(Hello, Goodbye)
someList.filter(_.isDefined)
如果你想保持结果types为List[Option[A]]