cg_*_*cg_ 0 scala pattern-matching for-comprehension spray
所以我有一堆采用这种格式的案例类:
case class A(value: String)
case class B(value: String)
case class C(value: String)
Run Code Online (Sandbox Code Playgroud)
我在函数中接受了几个Option [String]值作为参数,如果参数中的值不是None,我想创建Option [A],Option [B].
我现在这样做:
val first = parameterOptional match {
case Some(theStringValue) => Some(A))
case None => None
}
Run Code Online (Sandbox Code Playgroud)
它有效,但我想知道是否有更简洁的方法来做到这一点,我对Scala很新.
示例中的变量名称显然已被更改.
谢谢
据我所知,你想将可选参数包装到其中一个案例类中?然后你可以简单地使用map:
scala> case class C(value: String)
defined class C
scala> val optionalParam: Option[String] = Some("zzz")
optionalParam: Option[String] = Some(zzz)
scala> optionalParam.map(C)
res0: Option[C] = Some(C(zzz))
scala> val optionalParam: Option[String] = None
optionalParam: Option[String] = None
scala> optionalParam.map(C)
res1: Option[C] = None
Run Code Online (Sandbox Code Playgroud)