2012-02-23 14 views
5

我々はこのオペレータ方式リストのではなく、セットで廃止コレクションハイレベルの操作廃止(リスト:リスト[A] - :A)

 @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 

リストはパフォーマンス面でこの操作にはあまり適していないが、私たちはまだ避けるべき長さの方法を持っているからです。 コレクションオペレータは将来のバージョンのスカラーでどのように見えますか?

答えて

7

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 

を期待します。代わりに、あなたは(filterNotができます正確に何である、とあなたが期待するべきである)

1,2,3,1,2,3 - 1 == 2,3,2,3 

を取得します。

Setの要素は一意であるため、2つの方法の区別はありません。

関連する問題