Se ho qualcosa di simile a un List[Option[A]]
e voglio convertire questo in un List[A]
, il modo standard è quello di utilizzare flatMap
:Esiste una funzione di scala identità?
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)
Ora o => o
è solo una funzione identità. Avrei pensato che ci sarebbe un modo per farlo:
l.flatMap(Identity) //return a List[String]
Tuttavia, non posso ottenere questo a lavorare come non si può generify un object
. Ho provato alcune cose inutilmente; qualcuno ha qualcosa di simile a funzionare?
mi piacerebbe pensare che '{} _' dovrebbe equivalere a '{x => x}' proprio come '{_ + 3}' equivale a '{x => x + 3}'. Qualcuno può commentare perché non è così? –