我必须处理 scala 2.7.5 中的不可变对象,它的成员之一是不可变的 Sortedset。我对加法没有问题,综合起来,它给出:
class MyClass[A](s:SortedSet[A]) {
...
def + (elem:A):MyClass[A] {
new MyClass(s + elem)
}
}
它可以工作,因为 + 运算符在 trait sortedSet 中是重载的,以返回一个 SortedSet。
不幸的是,删除元素失败,因为 - 方法没有重载:
class MyClass[A](s:SortedSet[A]) {
...
def - (elem:A):MyClass[A] {
new MyClass(s - elem) // Compiler error: (s - elem) is a Set[A]
}
}
有谁知道当我抑制一个元素时我如何获得一个排序集: - 我不想使用像 TreeSet 这样更具体的集合。- 我不能使用不太具体的特征作为 Set[A] 而不是我的 SortedSet。