enum class는 열거 상수들로 이루어져있고 이 열거 상수는 각 객체로 이루어져있다.
상태 값이나 비슷한 속성 값을 상수로 만들어 편하게 사용할 수 있다.
하단의 예시를 보면 쉽게 이해할 수 있다.
enum class DayOfWeek{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
}
fun getWeeklyTodoList(today:DayOfWeek):String{
return when(today){
DayOfWeek.MONDAY -> "work"
DayOfWeek.TUESDAY -> "work.."
DayOfWeek.WEDNESDAY -> "work..."
DayOfWeek.THURSDAY -> "work...."
DayOfWeek.FRIDAY -> "work....."
DayOfWeek.SATURDAY -> "rest!"
DayOfWeek.SUNDAY -> "study"
}
}
fun main(arg: Array<String>) {
val today = DayOfWeek.MONDAY
println(getWeeklyTodoList(today)) //work
}
enum값에 속성값을 포함할 수도 있다.
fun main(arg: Array<String>) {
val today = DayOfWeek.MONDAY
println(today.checkWork("work")) //true
println(DayOfWeek.SUNDAY.checkWork("work")) //false
}
enum class DayOfWeek(val work:String){
MONDAY("work"),
TUESDAY("work.."),
WEDNESDAY("work..."),
THURSDAY( "work...."),
FRIDAY("work....."),
SATURDAY("rest!"),
SUNDAY("study");
fun checkWork(checkWork:String) = checkWork == this.work
}
+ 참고
속성 값을 넣으려면 해당 매개변수가 무조건 있어야한다.
하단 처럼 하면 오류가 난다
enum class DayOfWeek{
MONDAY("work"),
TUESDAY("work.."),
WEDNESDAY("work..."),
THURSDAY( "work...."),
FRIDAY("work....."),
SATURDAY("rest!"),
SUNDAY("study")
}
'개발 공부 > kotlin' 카테고리의 다른 글
kotlin get(), set() 프로퍼티 (0) | 2022.07.03 |
---|---|
Kotlin 컬렉션 정렬 sort, sorted, sortedby, sortDescending, sortWith (0) | 2022.07.03 |
Coroutines/코루틴 기초 1 (0) | 2021.09.14 |