2015-09-17 16 views

risposta

10

per Generic T, è possibile evitare il caso con map - v.map(_.toString).getOrElse("")

+0

@JordanParmer OP non ha menzionato che T == String –

+0

Buon punto - l'ho appena capito. Grazie. –

3

Option è una monade. In FP, quando si lavora con le monadi, si definisce cosa si vuole che accada se la monade contiene uno stato (cioè un valore diverso da None). Altrimenti, vai avanti.

val ostring: Option[String] = functionThatGetsOptionString() 

ostring.map { s => 
    functionThatUsesString(s) 
} 

All'interno della funzione map, s conterrà la stringa grezzo se il Option è Some(String) altrimenti non eseguirà il corpo interno se Option è None.

3
scala> Some(1).fold("")(_.toString) 
res0: String = 1 

scala> None.fold("")(_.toString) 
res1: String = "" 
Problemi correlati