Sto sviluppando del codice utilizzando Scala e sto cercando di risolvere in modo intelligente una trasformazione di base tra raccolte che contiene alcuni Option[T]
.Gestisci in modo intelligente l'opzione [T] in Scala
Diciamo che abbiamo il seguente elenco
val list: List[(A, Option[B])] = // Initialization stuff
e vogliamo applicare una trasformazione a list
per ottenere la seguente lista
val transformed: List[(B, A)]
per tutti Option[B]
s che restituiscono Some[B]
. Il modo migliore che ho trovato per farlo è quello di applicare la seguente catena di trasformazioni:
val transformed =
list.filter(_.isDefined)
.map { case (a, Some(b)) => (b, a) }
Tuttavia sento che mi manca qualcosa. Qual è il modo migliore per gestire lo Option[T]
s?