Ho il seguente ciclo per rendimento che prende in un valore booleano e deve sia produrre alcuni (stringa) o None, a seconda della booleana:Può un rendimento di resa in Scala Scala se si passa a un'opzione?
val theBoolean = false
val x: Option[String] =
for {
theArg <- theBoolean
} yield {
if (theArg) {
"abc"
} else {
None
}
}
Questa grande opera se theBoolean
è in realtà un valore booleano come false
. Tuttavia se volevo passare in un Option[Boolean]
:
val theBoolean = Some(false)
sembra Scala applica automaticamente un wrapper Alcuni() per il ritorno Nessuno - ottengo una denuncia che "Espressione di Tipo di opzione [Serializable] non è conforme al tipo previsto Opzione [stringa] "(con Nessuno che è serializzabile). La resa è perfettamente felice con la stessa stringa di ritorno anche se (non diventa un'opzione [Opzione [String]]
Come potrei restituire un Nessuno in questo caso?
ho scoperto che in realtà None.get rende il compilatore felice. Ma sembra strano usarlo in questo modo. – Nathan
Che cosa sta cercando di ottenere questo codice? –
Viene passata un'opzione - in determinate condizioni voglio estrarne una stringa, ma in altre condizioni voglio che sia None. – Nathan