scala - check optional field to populate another field -
is there efficient way remove below if , else condition
object currency { sealed trait myconstants extends mytrait[string] case object extends myconstants {val value ="abc"} case object b extends myconstants {val value = "def"} } case class test(name:string) case class mycurerncy(currency: option[myconstants]) def check (name:string):option[test] ={.....} if(check("xyz").isdefined){ mycurerncy(option(currency.a)) }else{ none } the method check return option[test] .i need populate mycurrency based on condition if test defined or not.
mycurerncy(option(currency.a)) of type mycurerncy. none of type option[nothing]. so
if(check("xyz").isdefined){ mycurerncy(option(currency.a)) }else{ none } will of type any (actually product serializable doesn't matter). sure prefer have any?
if prefer have mycurerncy i.e.
if(check("xyz").isdefined){ mycurerncy(option(currency.a)) }else{ mycurerncy(none) } you can write
mycurerncy(check("xyz").flatmap(_ => option(currency.a))) if anyway prefer can write wrote or match
check("xyz") match { case some(_) => mycurerncy(option(currency.a)) case none => none }
Comments
Post a Comment