【问题标题】:Scala: why remove is deprecated in favor of filterNot?Scala:为什么不推荐使用 remove 来支持 filterNot?
【发布时间】:2011-09-19 08:58:17
【问题描述】:
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'

【问题讨论】:

    标签: list scala immutability deprecated


    【解决方案1】:

    这是因为 remove 方法不一致 - 对于某些集合,它执行了可变的就地删除,而对于不可变集合,它创建了一个新版本。具有就地(批量)修改的方法应仅可用于可变集合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 2013-10-17
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      • 2017-11-04
      相关资源
      最近更新 更多