[kotlin] 코틀린에서의 옵셔널 값 처리

코틀린은 널 안전성을 강조하는 언어로, 옵셔널 값을 처리하는 다양한 방법을 제공합니다. 이 포스트에서는 코틀린에서 옵셔널 값을 다루는 방법에 대해 알아보겠습니다.

1. 널 가능 타입

코틀린은 기본적으로 모든 변수가 널이 될 수 있는 타입으로 선언됩니다. 이를 나타내기 위해 ?를 사용할 수 있습니다.

val name: String? = null

위의 예시에서 name은 널이 될 수 있는 문자열 타입으로 선언되었습니다.

2. 안전 호출 연산자 (?.)

코틀린에서는 옵셔널 값에 접근할 때 안전 호출 연산자 ?.를 사용하여 널 체크를 수행할 수 있습니다.

val length: Int? = name?.length

위의 예시에서 name이 널이 아닌 경우에만 length에 문자열 길이가 할당됩니다.

3. 엘비스 연산자 (?:)

옵셔널 값이 널인 경우에 대체 값을 지정하려면 엘비스 연산자 ?:를 사용할 수 있습니다.

val len: Int = length ?: -1

위의 예시에서 length가 널인 경우에 -1len에 할당됩니다.

4. 안전한 형변환 (as?)

옵셔널 값에서 안전하게 타입을 변환하려면 as?를 사용할 수 있습니다.

val str: String? = "Hello"
val upper: String = str as? String ?: ""

as? 연산자를 통해 안전하게 문자열로 변환하고, 널일 경우에는 빈 문자열이 할당됩니다.

5. 널 체크 및 연산 수행 (let)

옵셔널 값이 널이 아닌 경우에 코드를 실행하려면 let 함수를 사용할 수 있습니다.

val userName: String? = getUser()
userName?.let {
    println("Welcome, $it")
}

userName이 널이 아닌 경우에만 let 함수 내의 코드가 실행됩니다.

결론

코틀린은 널 안전성을 고려하여 옵셔널 값을 처리하는 다양한 방법을 제공합니다. 안전한 코드를 작성하기 위해 옵셔널 값 처리에 대해 숙지하는 것이 중요합니다.

이 포스트는 코틀린에서의 옵셔널 값 처리에 대해 알아보았습니다. 향후 코틀린 프로젝트를 진행할 때 옵셔널 값 처리에 유용하게 활용할 수 있을 것입니다.

참고 자료