如果有人想在整个Map
对象上应用模式匹配,那该怎么办?
示例(虽然没有编译)将是:
def main(args: Array[String]) {
val m: Map[String, Int] = Map("a" -> 1, "b" -> 2) //scala.collection.immutable.Map2
m match {
case Map2("a",1,"b",2) => println("matched") //conceptual code line
case _ => println("not matched")
}
}
阻止Map2
定义作为案例类的可能原因是什么?
key1
和value1
...)答案 0 :(得分:3)
一个显着的原因是,从案例类派生新类最好被弃用,最坏的情况是危险的。为了允许用户(或Scala标准库作者)从这些类派生,它们可能不是案例类。