Scala模式匹配和逻辑不

jak*_*ack 4 scala pattern-matching

我有:

 x match { 
  case a: SomeType => doSomething()
  case _ => doSomethingElse()
 }
Run Code Online (Sandbox Code Playgroud)

有没有办法检查“ a”不是给定类型?

像这样:

x match { 
  case !(a: SomeType) => doSomething()
  case _ => doSomethingElse()
}
Run Code Online (Sandbox Code Playgroud)

编辑:我同意这个问题可能不是很清楚,但是我的兴趣主要是合乎逻辑的,并且已经得到回答。

Ped*_*uís 5

像这样:

x match { 
  case a: if !a.isInstanceOf[MyFirst] => doSomething()
  case b: MySecond => doSomething()
  case _ => doSomethingElse()
}
Run Code Online (Sandbox Code Playgroud)

  • 这是对问题的正确答案,也是我希望在代码中从未看到的东西。 (6认同)