2012-02-23 1 views
5

왜 우리가이 운영자 방법컬렉션 높은 수준의 작업 중단 (목록 : 목록 [A] - 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 

List는 성능면에서이 작업에 적합하지 않지만 우리는 여전히 피해야하는 길이 방법이 있기 때문에. 추후 버전의 스칼라에서 콜렉션 운영자는 어떻게 생겼을까요?

답변

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의 요소는 고유하므로 두 가지 방법을 구분하지 않습니다.