Scala模式匹配和逻辑不

时间:2019-05-21 16:17:21

标签: scala pattern-matching

我有:

 x match { 
  case a: SomeType => doSomething()
  case _ => doSomethingElse()
 }

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

像这样:

x match { 
  case !(a: SomeType) => doSomething()
  case _ => doSomethingElse()
}

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

2 个答案:

答案 0 :(得分:5)

类似这样的东西:

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

答案 1 :(得分:4)

编辑后。您需要的内容与以下内容相同:

x match { 
  case a: SomeType => doSomethingElse()
  case _ => doSomething()
}