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

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

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

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

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

+67
источник поделиться
2 ответа

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

scala> someList.flatten
res0: List[String] = List(Hello, Goodbye)
+111
источник

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

+10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос