your programing

Scala 유형 시스템의 장점

lovepro 2020. 12. 30. 19:50
반응형

Scala 유형 시스템의 장점


저는 Scala 언어를 탐구하고 있습니다. 내가 자주 듣는 한 가지 주장은 Scala가 Java보다 강력한 유형 시스템을 가지고 있다는 것입니다. 이것으로 사람들이 의미하는 바는 다음과 같습니다.

  • scalac정상적으로 javac컴파일 되는 특정 버그 프로그램을 거부 하고 런타임 오류 만 발생시킵니다.
  • 컴파일러가 프로그래머가 조건을 위반하는 코드를 작성하도록 허용하지 않도록 특정 불변성을 Scala 프로그램에서 인코딩 할 수 있습니다.

내가 그렇게 생각하는 것이 옳은가?


Scala Type 시스템의 주요 장점은 그다지 강력 하지 않고 훨씬 풍부 하다는 것입니다 ( " Scala Type System "참조).
(Java는 그들 중 일부를 정의하고 다른 것을 구현할 수 있지만 Scala에는 내장되어 있습니다).
또한 참조 신화 업체 1 : 스칼라의 "유형 유형" 주석, 스티브 예그의 블로그 게시물을 여기서 그는 "disses" "형의 종류 및 유형 유형 유형이있다"때문에 "프랑켄슈타인의 괴물"로 스칼라.


Java의 주요 안전 문제는 분산과 관련이 있습니다. 기본적으로 프로그래머는 Java에서 런타임에 예외가 발생할 수있는 잘못된 분산 선언을 사용할 수 있지만 Scala는이를 허용하지 않습니다.

사실, Java Array가 공변 이라는 사실 은 잘못된 코드가 생성 될 수 있기 때문에 이미 문제입니다. 예를 들어, sepp2k에 의해 예시 된대로 :

String[] strings = {"foo"};
Object[] objects = strings;
objects[0] = new Object();

물론 모든 종류의 것을 허용하는 Java에는 원시 유형이 있습니다.

또한 Scala도 가지고 있지만 캐스팅이 있습니다. Java API는 유형 캐스트가 풍부하며 Scala의 case x: X => // x is now safely cast. 물론 한 가지 사례는이 instanceof를 달성하는 데 사용 되지만 그렇게 할 인센티브는 없습니다. 사실, Scala asInstanceOf는 의도적으로 장황합니다.

이것이 Scala의 타입 시스템을 더 강하게 만드는 것입니다. VonC가 보여주는 것처럼 훨씬 더 풍부 합니다.

참조 URL : https://stackoverflow.com/questions/3112725/advantages-of-scalas-type-system

반응형