agustarc / Learning-Scala

스칼라 학습 자료 정리

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

스칼라는 객체지향이다

  • 모든 값이 객체라는 측면에서 순수 객체지향 언어
  • 객체의 타입과 행위는 클래스와 트레잇으로 나타난다.
  • 다중 상속을 대체하는 유연한 믹스인 기반의 컴포지션 방법을 통해 확장된다.

스칼라는 함수형이다

  • 모든 함수가 값이다.
  • 익명 함수를 위한 경량 구문을 제공한다.
  • 고차 함수를 지원한다.
  • 함수의 중첩을 허용한다.
  • 커링을 지원한다.
  • 대수 타입을 만들 수 있다(케이스 클래스와 케이스 클래스의 패턴 매칭 빌트인 지원을 통해)

스칼라는 정적 타입이다

  • 스칼라는 안전하고 일관성 있는 추상화를 정적으로 강제하는 풍부한 타입 시스템을 장착하고 있다.
  • 스칼라 타입 시스템이 지원하는 항목
    • 제네릭 클래스
    • 가변성 어노테이션
    • 상위 타입 경계와 하위 타입 경계
    • 객체 멤버로써의 내부 클래스와 추상 타입
    • 합성 타입
    • 명시적으로 타입이 지정된 자기 참조
    • 다형 메소드
    • 로컬 타입 추론

스칼라는 확장성이 높다

  • DSL(Domain-Specific Language) 개발이 용이하다.
  • 어떤 메소드든 중위나 후위 연산자로 사용될 수 있다.
  • 클로저는 기대 타입에 따라 자동으로 생성된다(타입이 대상에 맞춰진다).
  • 스칼라는 자바와 닷넷과 상호 호환된다.
  • 스칼라는 자바와 같은 컴파일 모델(컴파일 분리, 동적 클래스 로딩)을 사용한다.

개발시 참고


목차

About

스칼라 학습 자료 정리


Languages

Language:Scala 100.0%