如果我不使用Somein unapply方法,为什么以下代码不起作用?
scala> object T {
| def unapply(i:Int) = (i+1,i+2) //Some not used, I get error
| }
defined object T
scala> 1 match {
| case T(x,y) => println(x,y)
| }
<console>:14: error: an unapply result must have a member `def isEmpty: Boolean
case T(x,y) => println(x,y)
^
scala> object T {
| def unapply(i:Int) = Some(i+1,i+2) //Some used. No error
| }
defined object T
scala> 1 match {
| case T(x,y) => println(x,y) …Run Code Online (Sandbox Code Playgroud) 使用此代码 println 将仅针对指定的异常执行。我想知道是否可以否定该行以使其对未指定的所有其他异常执行。我知道可以使用 2 个案例,但我想知道是否可以使用一个案例来完成。
val myHandler: PartialFunction[Throwable, Unit] = {
case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
println("Got it")
}
Run Code Online (Sandbox Code Playgroud)