私はこのような抽象化を構築しました:
class Thing(val messages: Map[String, Seq[String]]) {
def and(that: Thing): Thing = {
new Thing(this.messages ++ that.messages)
}
}
this
の のマップを のマップString -> Seq[String]
とマージする必要がありthat
ます。
これは、これを行うために私が考えることができる最良の方法です:
def and(that: Thing): Thing = {
val keys = this.messages.keys ++ that.messages.keys
val tuples = keys map {
case key: String =>
val theseMessages = this.messages.getOrElse(key, Seq[String]())
val thoseMessages = that.messages.getOrElse(key, Seq[String]())
(key, theseMessages ++ thoseMessages)
}
new Thing(tuples.toMap)
}