Kotlin/Kotlin Language

[Kotlin] 엘비스 연산자 (Elvis Operation)

chattymin 2023. 1. 19. 00:00
728x90
반응형

코틀린에는 엘비스 연산자가 있다. null을 체크하고, 결과를 리턴해준다.

 

var birthday = readLine()?.toIntOrNull()?:1

이렇게 ?: 를 활용해서 값을 리턴하는 방식이다.

?:의 왼쪽 값이 null일 경우 ?:의 오른쪽에 있는 값을 리턴해준다.

 

위의 코드를 예시로 들면 readLine()?.toIntOrNull의 값, 즉 입력받은 값이 null일 경우 1을 리턴하고

null이 아닐경우 원래 값을 리턴한다.

 

 

아래와 같은 예시가 있다.

fun main(){
    var nullTest: Int? = 3
    if (nullTest == null){
    	println(0)
    }else{
    	println(nullTest+1)
    }
}

if와 else를 사용하여 입력값이 null일 경우를 체크해준다. 

null일 경우 0을 출력하고, null이 아닐경우 입력값에 1을 더한 값을 출력시켜 준다.

 

위와 같은 코드를 방금 배운 앨비스 연산자를 활용해서 바꿔보자.

fun main(){
    var nullTest: Int? = 3
    println(nullTest?.inc()?:0)
}

훨씬 간단하다!

 

엘비스 연산자는 불필요한 코드를 줄여줘서 가독성은 높여준다.

 

오히려 남용하면 코드의 가독성이 떨어질 수 있기 때문에 적절히 쓰자

728x90
반응형