2015-09-17 27 views

cevap

10

, sen map ile eğer önleyebilirsiniz. FP'de, monad'larla çalışırken, monad bir durum içeriyorsa (yani, None'dan başka bir değer) ne olmasını istediğinizi tanımlarsınız. Aksi takdirde, devam edersiniz. OptionOptionNone ise Some(String) aksi takdirde iç gövdeyi çalıştırmaz ise map fonksiyonu içinde

val ostring: Option[String] = functionThatGetsOptionString() 

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

, s ham dize içerecektir.

+0

@JordanParmer OP, T == String –

+0

İyi bir noktadan bahsetmemişti - İyi bir fark. Teşekkürler. –

3

Option bir monad olan - jenerik T için

def strConvert[T](v: Option[T]): String = { 
    if (v.isDefined) 
     v.get.toString 
    else 
     "" 
} 
3
scala> Some(1).fold("")(_.toString) 
res0: String = 1 

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