기타 타입들
기타 타입들 (Other Types)
이제까지 스칼라 타입 시스템의 주요 타입들을 둘러봤어요. 그런데 스칼라에는 이 책에서 다루지 않은 고급 타입들도 몇 가지 있어요. 지금 당장 쓰진 않더라도, 나중에 마주쳤을 때 "이게 뭐지?" 하고 당황하지 않도록 이름 정도는 알고 가면 좋아요.
출처: Scala 3 Book
본문
이 책에서 다루지 않은 스칼라의 고급 타입들에는 이런 것들이 있어요.
- 타입 람다 (Type lambdas) — 타입 레벨에서의 함수. 타입을 받아 타입을 만들어 내요.
- 매치 타입 (Match types) — 타입을 패턴 매칭해서 그 결과에 따라 다른 타입으로 계산되는 타입.
- 존재 타입 (Existential types) — "어떤 타입 X가 존재한다"는 식으로 특정 타입을 명시하지 않고 표현하는 타입. 주로 Scala 2에서 쓰였던 개념이에요.
- 고차 타입 (Higher-kinded types) — 타입 파라미터를 받는 타입 생성자를 타입 파라미터로 다루는 것.
- 싱글턴 타입 (Singleton types) — 값 하나만을 가리키는 타입. 리터럴 타입도 여기에 해당해요.
- 정제 타입 (Refinement types) — 기존 타입에 추가적인 요구사항을 더해 만드는 타입.
- 종류 다형성 (Kind polymorphism) — 타입의 종류(kind)까지 추상화해서 다루는 것.
이 타입들 중 대부분에 대한 더 자세한 내용은 스칼라 3 레퍼런스 문서를 참고하면 돼요. 싱글턴 타입은 스칼라 3 스펙의 리터럴 타입(literal types) 절을, 정제 타입은 정제 타입(refined types) 절을 각각 보면 돼요.
더 알아보기 (Learn more)
- Scala 3 Reference — 스칼라 3 레퍼런스 문서
- Scala 3 Book — Types and the Type System — 타입과 타입 시스템 소개