enum class

    [Kotlin] enum class의 사용하기

    목표 enum class의 사용법을 이해한다. enum class에 대한 함수 만들기 class Task { var state: State = State.WAITING fun printState() = when(state){ State.WAITING -> println("Waiting..") State.PROCESSING -> println("Processing..") State.DONE -> println("Task done") } enum class State { WAITING, PROCESSING, DONE } } 앞의 글에서 위의 코드를 보았다. 하지만, 이 코드는 문제가 있다. 특정한 state가 추가될 때마다 when의 분기에 무조건 print를 위한 처리 로직을 넣어주어야 한다. 공통 함수 ..

    [Kotlin] enum class란 무엇인가?

    목표 enum class가 무엇인지 이해한다. enum class가 사용되어야 하는 곳을 이해한다. enum class를 왜 사용해야 하는가? 변수의 상태 별로 다른 결과값을 출력하는 코드를 짜야한다면 어떻게 짜야할까? 직관적으로 떠오르는 방법은 변수의 상태를 상수로 정의한다음 상태 별로 동작을 정의하는 것이다. 예를 들어 Task라는 작업 단위가 있고 해당 작업 단위의 상태값이 state를 출력해주는 클래스를 설계한다고 해보자. 그러면 해당 클래스는 아래와 같이 만들어질 수 있다. class Task { var state: Int = WAITING fun printState() = when (state) { WAITING -> println("Waiting..") PROCESSING -> println..