본문 바로가기
Kotlin

Kotlin에서 if문을 대체하는 2가지 방법

by 안솝우화 2022. 4. 21.
반응형

아래 일반적인 코틀린에서의 if문이 있습니다, 하지만 이 방법은 문제점이 존재합니다

        val nowState = "onStart"
        if (nowState == "onStart"){
            //do
        }else if (nowState == "onResume"){
            //do
        }else if (nowState == "onPause"){
            //do
        }else if (nowState == "onStop"){
            //do
        }else{
            //onDestroy
            //do
        }

바로 가독성을 떨어뜨린다는 것입니다

딱 봐도 한눈에 알아보기 힘들지 않나요?? :(

그렇다면 이 문제를 어떻게 해결할 수 있을까요? 오늘은 2가지로 크게 나눠 알아보겠습니다

 

When

        val nowState = "onStart"
        when(nowState){
            "onStart" -> {  }
            "onResume" -> {  }
            "onPause" -> {  }
            "onStop" -> {  }
            else -> {  }
        }

when으로 이렇게 줄이고 가독성을 향상할 수 있습니다!

 

HashMap

        val nowStateMap = HashMap<String,String>()
        nowStateMap["start"] = "onStart"
        nowStateMap["resume"] = "onResume"
        nowStateMap["pause"] = "onPause"
        nowStateMap["stop"] = "onStop"

        //찾기를 원하는 키
        if (nowStateMap.containsKey("red")){
            //키의 정보 값에 접근
            nowStateMap["red"]
        }

이런식으로 줄일 수도 있습니다

 

좀 더 끌리는? 것과 상황에 맞게 사용하시면 될 것 같습니다!!

반응형