为什么会有这种运算符(operator)方法
@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在性能方面不是很适合此操作,但是我们仍然有应该避免使用length方法。
集合操作符在scala的 future 版本中将如何显示?
最佳答案
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
的元素是唯一的,因此两种方法之间没有区别。
关于scala - 集合高级操作弃用(列表:List[A] - a:A),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405545/