2010-04-21 2 views

답변

20

This article은 Martin Odersky (Scala의 제작자)와의 토론이며 Java와의 호환성을 위해 Scala에서 만들어진 절충안을 포함합니다. 이 기사는 언급 : 특성과 클래스 null 포인터의

  • 포함될 내용을 모두 갖는

    1. 방법의 정적 과부하
    2. .
  • +0

    에서 참조 할 수 있습니다. 보편적 인 평등과 해시에 +1 +1 – VonC

    26

    가장 중요한 두 타협은 다음과 같습니다

    • type erasure ("reflecting on Type") : 그것은 (이전 버전과의 호환성을 이유로 JVM의 독립) 자바 컴파일 해결하기 위해 manage a Manifest에 있습니다. 예컨대 : 스칼라 2.8 배열을 처리 arrays

      새 계획 : 원시 형의

    • 모음입니다. 대신 복싱/언 박싱 및 기타 컴파일러 마법의 체계는 (경계 포함) 제네릭 형식을 관리 할 때, 배열

    두 가지 주요 JVM 제한이 통합 암시 적 변환과 매니페스트에 의존 다음은 Java JVM은 일반 객체에서 정확한 유형 사용을 유지하지 않으며 "원시적"유형을 가지고 있습니다.


    그러나 당신은 또한 고려할 수 :

    는 스칼라 제공 :

    • 기존 클래스 E 일반적 huge number of static types 스칼라 요구 (대부분의 경우) 자바에서 생성 될 도입 유형,
    • 값 클래스 유형,
    • Null을 유형,
    • 모나드 유형,
    • 특성 유형
    • 단일 개체 유형 (절차 모듈, 유틸리티 클래스 등)),
    • 복합 유형,
    • 기능 유형,
    • 케이스 클래스,
    • 경로에 의존하는 유형,
    • 익명 유형,
    • 자기 유형,
    • 유형 별칭
    • 일반 유형,
    • 공변 일반 유형,
    • 연속 ravariant 일반적인 유형은
    • 제한된 일반적인 유형,
    • 추상 유형,
    • 실존 적 유형,
    • 암시 적 유형,
    • 증강 유형,
    • 보기 유형을 경계하고,
    • 구조 유형은 허용 다르게 실패 할 때 오리 타이핑의 한 형태
    +0

    참고 사항 : 해당 유형 목록은 http://stackoverflow.com/questions/3112725/advantages-of-scalas-type-system/3113741#3113741 – VonC

    3

    문화적 숙취보다 런타임에 덜 공통적 인 문제 (유니버설 평등, 해시, toString).

    VM과 더 깊은 관련이 있습니다. 기본적으로 엄격한 평가, 불순한 기능, 예외가 있습니다.

    +0

    +1. 보편적 인'toString'의 문제점은 무엇입니까? – missingfaktor

    +0

    1) 우연히'Object # toString'을 사용자에게 쉽게 표시 할 수 있습니다. 2)'Collection [A] # toString'은 'A'타입의 요소를 표시하는 방식에서 융통성이 없습니다. 다른 방법은'scalaz.Show'를 보라. – retronym

    +0

    오케이. 응답 해 주셔서 감사합니다. – missingfaktor

    관련 문제