118

Scalaに がある場合、値List[Option[A]]を除外する慣用的な方法は何ですか?None

1 つの方法は、次を使用することです。

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

もっと「慣用的な」方法はありますか?これはかなり単純に思えます。

4

3 に答える 3

179

同時にオプションを削除したい場合は、次を使用できますflatten

scala> someList.flatten
res0: List[String] = List(Hello, Goodbye)
于 2012-04-11T10:59:51.277 に答える
21

someList.filter(_.isDefined)結果の型を維持したい場合List[Option[A]]

于 2015-04-07T15:53:10.857 に答える