val myList = List( Some(1), Some(4), None, Some(5) )e volete solo i valori, quindi List(1, 4, 5). Qualche volta trovate codice analogo al seguente, magari scritto da me l'anno scorso :)
val values = myList filter (! _.isEmpty) map (_.get) assert( values == List(1, 4, 5) )Orribile!
Infatti, essendo Option un container possiamo (e dobbiamo) fare questo:
val values = myList.flatten assert( values == List(1, 4, 5) )o, al massimo:
val values = for( Some(a) <- myList ) yield a
Nessun commento:
Posta un commento