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
...) - ケースクラスはジェネリック型パラメーターには適用されませんか?
- マップ全体を一致させるというまれな使用法 (しばしば無意味になります)?