[TIL 230911] Kotlin Enum 클래스

장재용·2023년 9월 11일

TIL

목록 보기
27/32

코틀린의 Enum 클래스

먼저 Enum 클래스는 한국말로 하면 열거를 뜻한다.

대부분의 언어에서 Enum클래스를 지원하며, 주로 데이터 타입을 분류하는 Flag역할과 상수를 저장하는 역할로 사용된다.

코틀린에서의 Enum 클래스는 Comparable 인터페이스를 구현하는 추상 클래스이다.

Enum 클래스 멤버

  • name : 호출하는 Enum value의 이름을 스트링 값으로 반환
  • ordianl : 호출하는 Enum value의 인덱스를 반환

Enum 클래스의 확장함수

  • enumValues<이넘>() : 배열로 반환
  • enumValueOf<이넘>(name: String) : name과 같은 이름을 가진 요소를 반환
enum class TodoContentType {
    ADD, EDIT, REMOVE; // 열거가 끝난 뒤엔 꼮 ; 를 붙여줘야 한다!

    companion object {
        fun from(name: String?): TodoContentType? {
            return TodoContentType.values().find {
                it.name.uppercase() == name?.uppercase()
            }
        }
    }
    
    fun Test() {
    	TodoContentType.ADD.name // "ADD" 반환
        TodoContentType.EDIT.ordinal // EDIT의 index 반환 (1)
    }
    
    fun main() {
    	val array = enumValues<TodoContentType>() // enum클래스를 배열로 반환
        val type = enumValueOf<TodoContentType>("ADD")
    }
}
enum class Student (val name: String, major: String) {
	Jang("건희", "컴퓨터공학"), Kim("정수", "수학과")
    }
profile
enjoy_error_message!

0개의 댓글