Omi*_*mid 3 scala pattern-matching
我有两个案例类:
case class B(value:Int)
case class A(a:String, b:B*) extends ALike
Run Code Online (Sandbox Code Playgroud)
我想在A的实例上进行模式匹配:
def foo(al:ALike) = {
al match {
case A(a, bs) => ...
}
}
Run Code Online (Sandbox Code Playgroud)
Scalac不明白这bs是一个Seq[B]并且认为它只是一个B.为什么会这样,我该如何进行模式匹配呢?
这是一个varargs参数,所以你需要明确地向编译器解释.使用以下case表达式:
def foo(al:ALike) = {
al match {
case A(a, bs @ _*) => ...
}
}
Run Code Online (Sandbox Code Playgroud)