Если вы хотите просто объединить совпадения, вы можете заметить, что это на самом деле частичные функции (потому что сопоставление может не получиться):
val firstCategory: PartialFunction[String, Int] = {
case "one" => 1
case "two" => 2
case "three" => 3
}
val secondCategory: PartialFunction[String, Int] = {
case "four" => 4
case "five" => 5
case "six" => 6
}
, которые можно объединить:
val all = firstCategory orElse secondCategory
all("one")
Интересно, что многие коллекции являются частичными функциями, например Map
, поэтому:
val firstCategory = Map[String, Int](
"one" -> 1,
"two" -> 2,
"three" -> 3
)
val secondCategory = Map[String, Int](
"four" -> 4,
"five" -> 5,
"six" -> 6
)
val all = firstCategory ++ secondCategory
all("one")
в этом примере должно работать так же.