如何映射选项案例 class
How to map an Option case class
说,有一个案例class
case class MyCaseClass(a: Int, b: String)
和一个Option[MyCaseClass]
变量
val myOption: Option[MyCaseClass] = someFunctionReturnOption()
现在,我想像这样映射这个选项变量:
myOption map {
case MyCaseClass(a, b) => do some thing
}
编译器似乎报告了类似 It needs Option[MyCaseClass], BUT I gave her MyCaseClass, bla bla..
的错误。如何在 Optional case class ?
中使用模式匹配
考虑像这样提取 Option
值,
myOption map {
case Some(MyCaseClass(a, b)) => do some thing
case None => do something else
}
或者使用 collect
作为部分函数,像这样
myOption collect {
case Some(MyCaseClass(a, b)) => do some thing
}
更新
请注意,如评论所述,OP 代码是正确的,此答案严格解决了 last 问题 How to use pattern match in Optional case class ?
MyOption match {
Some(class) => // do something
None => // do something.
}
或
MyOption map (class =>//do something)
说,有一个案例class
case class MyCaseClass(a: Int, b: String)
和一个Option[MyCaseClass]
变量
val myOption: Option[MyCaseClass] = someFunctionReturnOption()
现在,我想像这样映射这个选项变量:
myOption map {
case MyCaseClass(a, b) => do some thing
}
编译器似乎报告了类似 It needs Option[MyCaseClass], BUT I gave her MyCaseClass, bla bla..
的错误。如何在 Optional case class ?
考虑像这样提取 Option
值,
myOption map {
case Some(MyCaseClass(a, b)) => do some thing
case None => do something else
}
或者使用 collect
作为部分函数,像这样
myOption collect {
case Some(MyCaseClass(a, b)) => do some thing
}
更新
请注意,如评论所述,OP 代码是正确的,此答案严格解决了 last 问题 How to use pattern match in Optional case class ?
MyOption match {
Some(class) => // do something
None => // do something.
}
或
MyOption map (class =>//do something)