memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

1. Scala의 열거형

스칼라에는 경로 의존 타입 (path-dependent type)을 활용한 열거형(enumeration type)이 있다.

경로 의존 타입과 관련된 추상 타입의 상세 내용 > 2020/02/23 - [Language/Scala] - Scala 추상 타입 (type T)

스칼라의 Enumeration 을 이용한다. (패키지: scala.Enumeration)

<java />
object Color extends Enumeration { // scala.Enumeration val Red = Value val Blue = Value val Green = Value }

 

짧게 작성하는 것도 가능하다.

<java />
object Color extends Enumeration { val Red, Blue, Green = Value }

 

사용할 때는 아래와 같이 사용이 가능하다.

<java />
Color.Red Color.Blue Color.Green

한번에 모든 값을 임포트하여 사용하고 싶을 때는

<java />
import Color._ val red = Red val blue = Blue val green = Green

 

2. 열거형의 이터레이션

Enumerationvalues 메소드를 통해 이터레이션(iteration)을 제공한다. 

<java />
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 메소드를 이용한 이터레이션

 

3. 열거형의 ID

열거형의 값을 차례대로 0번 부터 번호(id) 가 붙는다. (이 번호는 id 메소드를 이용해서 찾을 수 있다)

<java />
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 의 값을 이용해서 해당 값을 가져올 수 있다.

<java />
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

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