我有两个案例类:
case class B(value:Int)
case class A(a:String, b:B*) extends ALike
我希望在A:
的实例上进行模式匹配def foo(al:ALike) = {
al match {
case A(a, bs) => ...
}
}
Scalac不理解bs
是Seq[B]
并且认为它只是一个B
。为什么会这样,我该如何进行模式匹配呢?
答案 0 :(得分:8)
这是一个varargs参数,所以你需要明确地向编译器解释。使用以下大小写表达式:
def foo(al:ALike) = {
al match {
case A(a, bs @ _*) => ...
}
}