【发布时间】:2023-03-11 05:19:01
【问题描述】:
我正在对一些案例类进行匹配,并希望以相同的方式处理其中两个案例。像这样的:
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"
}
}
但是当我这样做时,我得到了错误:
(fragment of test.scala):10: error: illegal variable in pattern alternative
case B(sb) | C(sc) => "B"
我可以通过从 B 和 C 的定义中删除参数来使其正常工作,但是如何与参数匹配?
【问题讨论】: