scala> List(1, 2, 3) remove (_ < 2)
<console>:8: warning: method remove in class List is deprecated: use `filterNot'
instead
List(1, 2, 3) remove (_ < 2)
^
res0: List[Int] = List(2, 3)
我不明白为什么这会被弃用。不可变,应该很清楚remove
会返回一个新列表。在scaladoc中,您只能找到:
不推荐使用:使用filterNot'代替
答案 0 :(得分:14)
这是因为方法remove
不一致 - 对于某些集合,它执行了可变的就地删除,而对于不可变集合,它创建了一个新版本。具有就地(批量)修改的方法应仅适用于可变集合。