如何筛选没有列表?

如果我在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]]