[kotlin] 널 타입을 처리하는 패턴과 규칙
Kotlin은 널 안전성을 향상시키기 위해 쉽게 사용할 수 있는 다양한 기능을 제공합니다. 널 타입을 다루는 것은 중요한 개발 과제 중 하나이며, Kotlin은 이를 위해 몇 가지 패턴과 규칙을 제시합니다. 이 글에서는 Kotlin에서 널 타입을 다루는 일반적인 패턴과 규칙에 대해 살펴보겠습니다.
1. 안전한 호출 연산자 (Safe Call Operator)
안전한 호출 연산자(?.
)는 객체가 널인지 여부를 검사한 후 안전하게 메서드를 호출하거나 프로퍼티에 접근하는 데 사용됩니다.
val length: Int? = str?.length
위 예제에서 str
이 널이 아닌 경우에만 length
프로퍼티에 접근할 수 있습니다.
2. 엘비스 연산자 (Elvis Operator)
엘비스 연산자(?:
)는 널일 때 대체값을 지정하는 데 사용됩니다.
val nonNullStr: String = nullableStr ?: "Default"
nullableStr
이 널이 아닌 경우 해당 값을 그대로 사용하고, 널일 경우에는 “Default” 값을 사용합니다.
3. 널 타입 검사 (Null Check)
null
값 여부를 검사하기 위해 is
연산자와 안전한 호출 연산자를 함께 사용할 수 있습니다.
if (str is String && str.isNotEmpty()) {
println(str)
}
위 예제에서 str
이 String
타입이면서 비어있지 않은 경우에만 해당 블록이 실행됩니다.
4. 널 타입에 대한 확실한 선언 (Definite Declaration of Nullability)
플랫폼 타입에 대해 명시적으로 널이 될 수 있다는 것을 표시하기 위해 !
를 사용할 수 있습니다.
val nonNullStr: String = nullableStr!!
nullableStr
이 널이 아님을 개발자가 확신하는 경우에만 사용되어야 합니다.
이러한 패턴과 규칙을 활용하여 Kotlin에서 널 타입을 안전하게 다룰 수 있습니다.
더 자세한 내용은 Kotlin 공식 문서를 참고하시기 바랍니다.
이상으로 Kotlin에서 널 타입을 다루는 패턴과 규칙에 대해 알아보았습니다. 감사합니다.