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