2017-02-04 1 views
-1

스칼라 정렬 API는 암시 적 개체를 사용합니다. 예컨대 :스칼라가 특성 확장보다 암시 적 매개 변수를 선호하는 이유는 무엇입니까?

def msort[T](xs: List[T])(implicit ord: Ordering) = { ...} 

자바 같은 목적을 위해 Comparable 인터페이스를 사용합니다.

public static <T extends Comparable<? super T>> void sort(List<T> list) { ... } 

왜 스칼라는 특성 확장에 비해 내재적 유형을 선호합니까? 암시 적 매개 변수의 이점은 무엇입니까?

답변

3
  1. 당신은 주어진 유형에 대해 여러으로 Orderingmsort를 사용할 수 있습니다. Comparable 확장 유형은 한 방향으로 만 확장 할 수 있습니다.

  2. 지식이 없어도 구현 된 유형 (예 : 모든 Java 유형!)에 Ordering을 제공 할 수 있습니다. 기존 유형을 연장하지 않을 경우 Comparable을 확장 할 수 없습니다.

관련 문제