라벨이 modifier인 게시물 표시

[Scala] sealed modifier

Scala에는 sealed 라는 독특한 modifier가 있다. 위와 같은 방식으로 사용하는데, sealed 라는 modifier를 붙인 class는 선언된 파일 안에서만 상속받을 수 있다. 선언된 파일이 아닌 다른 파일에서는 사용할 수는 있지만 상속받으려고 한다면 컴파일 에러가 발생한다. 다만, sealed 의 자식은 sealed 가 아니어서 주로 final modifier 와 함께 쓰인다. Scala library 중 sealed modifier를 사용하는 대표적인 예제는 Option 과 Try 다. Option 은 Some 과 None 2개의 자식이 있고, Try 는 Success 와 Failure 2개의 자식을 가지고 있다. Option 과 Try 는 sealed 로 선언되어 같은 파일에서 선언한 Some , None 과 Success , Failure 이외에는 자식을 가지지 못하게 하고, Some , Success , Failure 는 final class 로 None 은 상속할 수 없는 object로 선언하여 사용자가 추가로 상속받을 방법을 막아놓았다.

이 블로그의 인기 게시물

Escape Codes의 역사

RAII는 무엇인가

[C++] enum class - 안전하고 쓰기 쉬운 enum

Log Aggregator 비교 - Scribe, Flume, Fluentd, logstash

[Python] cache 데코레이터로 최적화하기