为什么我们有这个算子方法
@deprecated("use `filterNot (_ == x)` instead", "2.8.0")
def - [B >: A](x: B): List[B]
//i.e. List(1,23,3,4,5) - 23
是否已弃用列表,但不适用于集合?
Set(1,23,3,4) - 23
如果因为List在性能方面不是很适合这个操作,但是我们还是应该避免使用长度方法。 集合运算符在scala的未来版本中将如何显示?
答案 0 :(得分:7)
List
方法的问题在于它从未做过您期望它做的事情。天真的,我希望
1,2,3,1,2,3 - 1,2,3,1 == 2,3
因此
1,2,3,1,2,3 - 1 == 2,3,1,2,3
除了那不是你得到的;相反,你得到了
1,2,3,1,2,3 - 1 == 2,3,2,3
(这正是filterNot
给出的,你应该期待的。)
由于Set
的元素是唯一的,因此两种方法之间没有区别。