scala 2.7.5で不変オブジェクトを処理し、メンバの1つがimmutable Sortedsetです。 スカラ不変SortedSetは削除時に "安定"ではありません
class MyClass[A](s:SortedSet[A]) {
...
def + (elem:A):MyClass[A] {
new MyClass(s + elem)
}
}
をそして+演算子がにSortedSetを返すために、形質たSortedSetで過負荷であるので、それは、動作します: 私はsynthetiseするほかに問題がきていない、それができます。
ので、残念ながら要素を削除すると失敗する - methosがオーバーロードされていません。
class MyClass[A](s:SortedSet[A]) {
...
def - (elem:A):MyClass[A] {
new MyClass(s - elem) // Compiler error: (s - elem) is a Set[A]
}
}
は、誰もが、私はそれを知っている要素抑制したときに、私はソートセットを入手することができます方法を知っているん。 を - 私が使用したくありませんTreeSetのようなより具体的なセットです。 - SortedSetではなく、Set [A]としてあまり特殊性の低いものは使用できません。
私はSortedMap APIをチェックしていますが、正しくソートマップを返します( " - " SortedMapを返します)。説明、ボーナスの質問がありますか? – Nicolas
Scala 2.7.xのコレクションライブラリはアドホックです。それはそれがあるようになるまで、時間とともに成長し、使用します。このような矛盾を解消することは、Scala 2.8の新しいコレクションライブラリの1つの目標です。 –