2011-06-21 10 views
6
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) 

No entiendo por qué esto está en desuso. Al ser inmutable, debe quedar claro que remove devolverá una nueva lista. En scaladoc se puede encontrar sólo:Scala: ¿por qué remove está en desuso en favor de filterNot?

Deprecated: uso filterNot' en lugar

Respuesta

14

Se debe a que el método remove no era coherente - para algunas colecciones se hizo un mutable eliminación en el lugar, mientras que para inmutable colecciones creó una nueva versión. Los métodos con modificaciones in situ (en bloque) solo deberían estar disponibles para colecciones mutables.

Cuestiones relacionadas