Esiste qualche funzione nativa in scala che equivalga a questa?Scala convert Opzione da [T] a stringa
def strConvert[T](v: Option[T]): String = {
if (v.isDefined)
v.get.toString
else
""
}
Esiste qualche funzione nativa in scala che equivalga a questa?Scala convert Opzione da [T] a stringa
def strConvert[T](v: Option[T]): String = {
if (v.isDefined)
v.get.toString
else
""
}
per Generic T
, è possibile evitare il caso con map
- v.map(_.toString).getOrElse("")
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
.
scala> Some(1).fold("")(_.toString)
res0: String = 1
scala> None.fold("")(_.toString)
res1: String = ""
@JordanParmer OP non ha menzionato che T == String –
Buon punto - l'ho appena capito. Grazie. –