Scala Enumeration
StackOverflow의 Scala Enumeration에 대한 문답을 간단히 요약
object Weekday extends Enumeration {
type Weekday = Value
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
import Weekday._
- Enumeration 클래스는 Value type(실제로는 내부 클래스)이 있으며
type Weekday = Value는 type alias val Mon, Tue, Wed, Thur, Fri, Sat, Sun = Value는 앞서 말한 type의 대입이 아니라 변수 각각에 대해 Value 메소드가 반복되어 호출되는 것이며(아마도 companion object의 apply 메소드인듯) 메소드는 매번 새로운 Value 인스턴스를 생성해서 반환한다- 이후 Weekday의 모든 변수를 import하고 나면 Mon, Tue 등을 바로 사용할 수 있다
댓글