Например, если у меня есть конкретный базовый класс и подкласс:
class A
class B extends A
Меня интересует сопоставление с экземплярами A
, которые НЕ являются также экземплярами B
.
Возможны следующие подходы:
// Short-circuit
x match {
case _: B => ()
case _: A => println("Type A and not B")
case _ => ()
}
// Using isInstanceOf
x match {
case a: A if !a.isInstanceOf[B] => println("Type A and not B")
case _ => ()
}
Но есть ли что-то более идиоматическое / сжатое / чистое? Спасибо