Как фильтровать None из списка [Option]?

Если у меня есть List[Option[A]] в Scala, что такое идиоматический способ отфильтровать значения None?

Один из способов - использовать следующее:

val someList: List[Option[String]] = List(Some("Hello"), None, Some("Goodbye"))
someList.filter(_ != None)

Есть ли более "идиоматический" способ? Это выглядит довольно просто.

Ответ 1

Если вы хотите избавиться от параметров в одно и то же время, вы можете использовать flatten:

scala> someList.flatten
res0: List[String] = List(Hello, Goodbye)

Ответ 2

someList.filter(_.isDefined), если вы хотите сохранить тип результата как List[Option[A]]