Si j'ai quelque chose comme un List[Option[A]]
et je veux le convertir en un List[A]
, la norme est d'utiliser flatMap
:
scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))
scala> l.flatMap( o => o)
res0: List[java.lang.String] = List(Hello, World)
Maintenant, o => o
est juste une fonction d'identification. J'aurais pensé qu'il y aurait d'une certaine façon de faire:
l.flatMap(Identity) //return a List[String]
Cependant, je ne peux pas obtenir que cela fonctionne comme vous ne pouvez pas generify un object
. J'ai essayé quelques petites choses en vain; quiconque a quelque chose comme cela fonctionne?