2013-04-14 1 views
5

타입 디자인에 대한 질문이 있습니다. Int가 Ordered 특성을 확장하지 않는 이유는 무엇입니까? Int가 본질 상 주문하지 않았습니까?Int가 상속/상속되지 않는 이유 [Int]

대신에 scala 라이브러리는 Int를 Ordered [Int]로 변환하는 암시적인 '순서 지정자'메소드를 제공합니다. 여기에서 디자인 선택은 무엇입니까? 스칼라에서 책 프로그래밍에서 촬영

지능 (및 AnyVal로부터 상속 한 다른 클래스) 임시이기 때문에
def maxListImpParm[T <% Ordered[T]](elements:List[T]):T= ... 


maxListImpParm(List(1,5,10,3)) // works because of implicit methods 
+0

선언은 다음과 같이 짧게 할 수 있습니다 : def maxListImpParm [T <% Ordered [T]] (요소 : List [T]) : T = ???' –

답변

7

- 런타임에 보통 (클래스의 개념이없는 원시 값으로 표현하고 따라서 상속). 물론, 콜렉션에 항목을 넣을 때 완전 블로 참조 클래스 인스턴스에 대한 Int 복싱과 같은 예외가 있지만 typeclass는 하나의 보편적 인 솔루션을 제공합니다. 또한, typeclasses는 more flexible than inheritance입니다.

관련 문제