본문 바로가기
Language/Kotlin

코틀린의 Elvis 연산자 (?:)

by 시니성 2023. 8. 25.

코틀린은 다양한 연산자를 제공하여 개발자의 편의성을 증진시키는데, 그 중 하나가 바로 Elvis 연산자 (?:)입니다. 이 연산자는 주로 null 검사에 활용되며, 좌측 피연산자의 값이 null이 아니면 그 값을 반환하고, null이면 우측 피연산자의 값을 반환합니다.

Elvis 연산자의 기본 구조:

val result = value ?: defaultValue

위 코드에서 valuenull이 아니라면 resultvalue가 할당되고, null이라면 defaultValue가 할당됩니다.

예제 코드:

fun main() {
    val name: String? = null
    val defaultName = "홍길동"

    // Elvis 연산자를 사용하여 name이 null일 경우 defaultName을 할당
    val displayName = name ?: defaultName
    println(displayName)  // 홍길동 출력

    val age: Int? = 25
    val defaultAge = 0

    // Elvis 연산자를 사용하여 age가 null이 아니므로 age 값을 할당
    val displayAge = age ?: defaultAge
    println(displayAge)  // 25 출력
}

상세한 주석:

fun main() {
    // nullable String 타입의 변수를 선언하고 null로 초기화
    val name: String? = null
    // 기본 이름으로 사용할 String 변수 선언
    val defaultName = "홍길동"

    // Elvis 연산자를 사용하여 name 변수의 값이 null인지 확인
    // null이면 defaultName의 값을, 아니면 name의 값을 displayName에 할당
    val displayName = name ?: defaultName
    println(displayName)  // 홍길동 출력

    // nullable Int 타입의 변수를 선언하고 25로 초기화
    val age: Int? = 25
    // 기본 나이로 사용할 Int 변수 선언
    val defaultAge = 0

    // Elvis 연산자를 사용하여 age 변수의 값이 null인지 확인
    // null이면 defaultAge의 값을, 아니면 age의 값을 displayAge에 할당
    val displayAge = age ?: defaultAge
    println(displayAge)  // 25 출력
}

엘비스 연산자는 코틀린에서 nullable 타입과 함께 사용하여 더 간결하고 안전한 코드를 작성할 수 있게 도와줍니다.