2011-04-05 1 views
2

모범 사례로는 둘 이상의 컬렉션 유형 인스턴스가 주위에 떠 있어야합니다. 예를 들어, Nil은 스칼라 라이브러리의 대/소문자입니다.TreeMap과 TreeSet가 모두 새로운 비어있는 가상의 TreeMap.empty, TreeSet.empty를 만듭니다. 이 고칠 수 있습니까?

그러나 TreeMap과 TreeSet은 각각의 empty() 호출시에 새로운 인스턴스를 생성합니다. 잠시 동안이 문제를 해결 한 후에는 순서가 공변 적이 지 않다는 것이 문제입니다. 이 문제를 해결할 수있는 방법이 있습니까?

답변

3

이것은 문제가 아닙니다. 또 다른 문제점은 TreeMap[A]TreeSet[A] 모두 값을 삽입하고 제거하기 위해 암시적인 Ordering[A] 매개 변수가 필요하다는 것입니다.

scala.collection.immutable.Set의 소스에서 알 수 있듯이을 Set[A]으로 캐스팅하면 형식 매개 변수가 런타임에 지워지기 때문에 비어 있으면 간단하게 캐스팅 할 수 있습니다.

+0

예, 가능하지만 다음 중 하나가 가능합니까? Ordering [Nothing]은 간단히 정의되며, 삽입 된 첫 번째 요소가 순서를 가져올 수 있습니다. – user44242

관련 문제