memostack
article thumbnail
블로그를 이전하였습니다. 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

 

열거형의 이터레이션

Enumerationvalues 메소드를 통해 이터레이션(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)

values 메소드를 이용한 이터레이션

 

열거형의 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

열거형의 id 메소드

반응형

'Language > Scala' 카테고리의 다른 글

Scala 추상 타입 (type T)  (0) 2020.02.23
Scala 추상 val 초기화  (0) 2020.02.23
Scala 추상 멤버 (타입멤버, 메소드, val, var)  (0) 2020.02.22
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!