相关疑难解决方法(0)

为什么我必须以unapply方法返回some

如果我不使用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)

scala

3
推荐指数
1
解决办法
259
查看次数

如何否定 Scala 中模式匹配中的类型?

使用此代码 println 将仅针对指定的异常执行。我想知道是否可以否定该行以使其对未指定的所有其他异常执行。我知道可以使用 2 个案例,但我想知道是否可以使用一个案例来完成。

val myHandler: PartialFunction[Throwable, Unit] = {
  case e @ (_: MappingException | _: ParseException | _: SomeOtherException) =>
   println("Got it")
}
Run Code Online (Sandbox Code Playgroud)

scala pattern-matching

1
推荐指数
1
解决办法
129
查看次数

标签 统计

scala ×2

pattern-matching ×1