ケースクラスSearchQualifier
に、left
とright
の2つのフィールドがあるとします。検索の対象とする場合は、SearchQuery
クラスのインスタンスに追加することができます(例:SearchQualifier("date", "January 1, 2000")
)。単一のフィールドの一意性を保持するケースクラスインスタンスのコレクション
case class SearchQualifier(left: String, right: String)
ここでは、SearchQualifiers
のコレクションがあるとします。 left
が同じコレクションに新しい修飾子を追加する場合は、前の値を上書きすることになります。たとえば:
qualifiers = qualifiers + Qualifier("date", "January 1, 2000")
...
qualifiers = qualifiers + Qualifier("date", "December 31, 1999") // override
はleft
に基づいて修飾子の一意性を維持するためにクリーンな方法はありますか?
私の現在のアプローチは、マップキーがleft
あるMap[String, Qualifier]
を使用していますが、それはハックのように感じている:
map = map + (qual.left -> qual)
を理想的には、私はSet
様行動を好むだろう。しかし、SearchQualifier("date", "January 1, 2000")
とSearchQualifier("date", "December 31, 1999")
はではないので、equals
をleft
にだけ書き換えるのは正しいとは思いません。ではありません。