2011-11-10 10 views
10

Supponiamo di avere un'opzione [Stringa], e se c'è qualche (stringa) lì, vogliamo trasformarla in Int to .toInt. Vorrei fare quanto segue:Conversione dell'opzione [T] all'opzione [U] in Scala

val foo: Option[String] = Some("5") 
val baz: Option[Int] = foo match { 
    case Some(thing) => Some(thing.toInt) 
    case None => None 
} 

Questo funziona benissimo. Tuttavia, sembra estremamente prolisso e come un sacco di lavoro. Qualcuno può mostrarmi un modo più semplice per farlo?

Grazie!

+0

Questa funzione può essere astratto: si chiama 'Functor'. La classe del tipo functor può funzionare con le rispettive istanze, ad esempio: List, Tree, Option, ecc. È un concetto piuttosto potente se si inizia a usarlo con un approccio basato sulla classe del tipo. – AndreasScheinert

risposta

10

Tutto ciò che serve è foo.map(_.toInt)

Problemi correlati