블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
Scala의 열거형
스칼라에는 경로 의존 타입 (path-dependent type
)을 활용한 열거형(enumeration type
)이 있다.
경로 의존 타입과 관련된 추상 타입의 상세 내용 > 2020/02/23 - [Language/Scala] - Scala 추상 타입 (type T)
스칼라의 Enumeration
을 이용한다. (패키지: scala.Enumeration
)
object Color extends Enumeration { // scala.Enumeration
val Red = Value
val Blue = Value
val Green = Value
}
짧게 작성하는 것도 가능하다.
object Color extends Enumeration {
val Red, Blue, Green = Value
}
사용할 때는 아래와 같이 사용이 가능하다.
Color.Red
Color.Blue
Color.Green
한번에 모든 값을 임포트하여 사용하고 싶을 때는
import Color._
val red = Red
val blue = Blue
val green = Green
열거형의 이터레이션
Enumeration
은 values
메소드를 통해 이터레이션(iteration
)을 제공한다.
object Direction extends Enumeration {
val North = Value("North")
val East = Value("East")
val South = Value("South")
val West = Value("West")
}
for (d <- Direction.values)
println(d)
열거형의 ID
열거형의 값을 차례대로 0번 부터 번호(id
) 가 붙는다. (이 번호는 id
메소드를 이용해서 찾을 수 있다)
object Direction extends Enumeration {
val North = Value("North")
val East = Value("East")
val South = Value("South")
val West = Value("West")
}
print(Direction.East.id) // 1
그리고, id
의 값을 이용해서 해당 값을 가져올 수 있다.
print(Direction(0)) // North
반응형
'Language > Scala' 카테고리의 다른 글
Scala 추상 타입 (type T) (0) | 2020.02.23 |
---|---|
Scala 추상 val 초기화 (0) | 2020.02.23 |
Scala 추상 멤버 (타입멤버, 메소드, val, var) (0) | 2020.02.22 |