[kotlin] 여러 개의 널 체크를 한번에 수행하는 범위 호출 방법

코틀린에서는 안전한 널 체크를 위해 연달아 수행해야 하는 번거로움이 있습니다. 이러한 번거로움을 피하고 코드를 간결하게 유지하기 위해 범위 호출(range call)을 사용할 수 있습니다. 범위 호출은 안전한 널 체크를 여러 개의 변수나 객체에 대해 한번에 수행하는 방법을 제공합니다.

문제점

다음은 안전한 널 체크를 수행하는 일반적인 방법입니다.

if (a != null) {
    if (b != null) {
        if (c != null) {
            // do something
        }
    }
}

위 코드는 각 변수마다 매번 널 체크를 하고 중첩된 구조로 코드가 복잡해지는 문제가 있습니다. 이러한 문제를 해결하기 위해 범위 호출을 사용할 수 있습니다.

해결 방법: 범위 호출

코틀린에서는 let 함수를 사용하여 범위 호출을 할 수 있습니다. let 함수는 수신 객체를 람다 함수의 인자로 전달하여 널 체크를 하고, 널이 아닐 경우 람다 함수를 호출합니다.

여러 개의 변수에 대해 한번에 널 체크하는 방법은 다음과 같습니다.

a?.let { a ->
    b?.let { b ->
        c?.let { c ->
            // do something
        }
    }
}

위와 같이 let 함수를 연쇄적으로 호출하여 여러 개의 변수나 객체에 대한 널 체크를 한번에 수행할 수 있습니다.

마무리

여러 개의 변수나 객체에 대해 안전한 널 체크를 번거롭지 않게 할 수 있는 범위 호출은 코틀린에서 코드의 가독성과 유지보수성을 향상시키는데 유용한 기능입니다. 이를 통해 코드를 간결하게 작성하고 중첩된 널 체크를 피하여 안전하고 명확한 코드를 유지할 수 있습니다.

이상으로 범위 호출에 대해 알아보았습니다.

Reference: