Je fais des comparaisons avec certaines classes de cas et je voudrais gérer deux des cas de la même manière. Quelque chose comme ça:
abstract class Foo
case class A extends Foo
case class B(s:String) extends Foo
case class C(s:String) extends Foo
def matcher(l: Foo): String = {
l match {
case A() => "A"
case B(sb) | C(sc) => "B"
case _ => "default"
}
}
Mais quand je fais cela, j'obtiens l'erreur:
(fragment of test.scala):10: error: illegal variable in pattern alternative
case B(sb) | C(sc) => "B"
Je peux le faire fonctionner en supprimant les paramètres de la définition de B et C mais comment puis-je faire correspondre les paramètres?