티스토리 뷰
728x90
Enum
- 자바와 같이 Enum클래스를 사용할 수 있음.
- 일반 클래스와 같이 프로퍼티 및 생성자를 선언할 수 있다.
- 프로퍼티와 함수를 구분하기 위해 세미콜론을 사용한다.
enum class ActiveType(val value: String) {
ACTIVE("Y"), INACTIVE("N"); // semicolon
fun activeTypeToBoolean() = this == ACTIVE
companion object {
fun booleanToActiveType(isActive: Boolean) = if (isActive) ACTIVE else INACTIVE
}
}
fun main() {
println("status is ${ActiveType.ACTIVE}") // status is ACTIVE
println("status is ${ActiveType.ACTIVE.value}") // status is Y
val activeType = ActiveType.booleanToActiveType(true)
println("activeType is $activeType") // activeType is ACTIVE
println("activeType is ${activeType.value}") // activeType is Y
println("activeType to boolean ${activeType.activeTypeToBoolean()}") // activeType to boolean true
}
With When
when과 함께 다양하게 사용할 수 있다.
enum class Fruit {
Apple, Orange, Banana
}
fun getFruitColor(f: Fruit) = when(f) {
Fruit.Apple -> "red"
Fruit.Banana -> "yellow"
Fruit.Orange -> "orange"
else -> "unknown"
}
fun isRoundFruit(f: Fruit) = when(f) {
Fruit.Apple, Fruit.Orange -> true
Fruit.Banana -> false
}
// 억지지만... 예시로..
fun isEqualFruit(f1: Fruit, f2: Fruit) = when(setOf(f1, f2)) {
setOf(Fruit.Apple, Fruit.Apple) -> true
setOf(Fruit.Banana, Fruit.Banana) -> true
setOf(Fruit.Orange, Fruit.Orange) -> true
else -> false
}
fun main() {
println("apple color is ${getFruitColor(Fruit.Apple)}") // apple color is red
println("banana is round? : ${isRoundFruit(Fruit.Banana)}") // banana is round? : false
println("is equal fruit? ${isEqualFruit(Fruit.Apple, Fruit.Apple)}") // is equal fruit? true
println("is equal fruit? ${isEqualFruit(Fruit.Apple, Fruit.Orange)}") // is equal fruit? false
}
출처
https://hongku.tistory.com/350
코틀린의 enum class 사용방법
enum class를 살펴보기전에 enum에 대한 개념을 간단하게 아는 것이 좋습니다. 만약 잘 알고 있는 분은 "여기"를 누르고 바로 코틀린의 enum class를 살펴보세요. JAVA의 enum 클래스 Java에서는 상수를 선언할때..
hongku.tistory.com
https://tourspace.tistory.com/99
[Kotlin] 코틀린 기초 #2 enum, when
이 글은 Kotlin In Action을 참고 하였습니다. 더욱 자세한 설명이나 예제는 직접 책을 구매하여 확인 하시기 바랍니다 2.3 enum 과 when 2.3.1 enum enum은 아래와 같이 사용합니다. enum class Color { RED, OR..
tourspace.tistory.com
728x90
'개발 언어 > 코틀린' 카테고리의 다른 글
코틀린(Kotlin) | 프로퍼티 위임 (0) | 2019.06.24 |
---|---|
코틀린(Kotlin) | 클래스 위임 (0) | 2019.06.24 |
코틀린(Kotlin) | 클래스 - 프로퍼티(Property) (2) | 2019.06.24 |
코틀린(Kotlin) | SAM Conversion (0) | 2019.06.24 |
코틀린(Kotlin) | 클래스 - 중첩 클래스와 내부 클래스 (0) | 2019.06.24 |
댓글