[kotlin] 널 타입 안정성 연산자

널 타입 안전성 연산자는 Kotlin 언어에서 제공하는 특별한 연산자로, 널 값을 가질 수 있는 변수 또는 속성을 안전하게 처리할 수 있도록 도와줍니다. Kotlin은 널 포인터 예외를 방지하고 안전성을 유지하기 위해 널 타입 안정성을 강조하는 언어입니다. 널 타입 안전성 연산자는 코드에서 널 값을 다룰 때 매우 유용하게 사용될 수 있습니다.

널 타입 안전성 연산자의 종류

Kotlin에서는 다음과 같은 널 타입 안전성 연산자를 제공합니다.

  1. 안전 호출 연산자 (?.): 객체가 널이 아닌 경우에만 메서드를 호출하거나 속성에 접근합니다. 만약 객체가 널이라면, 널을 반환합니다.
  2. 널 병합 연산자 (?:): 왼쪽 피연산자가 널이 아닌 경우 해당 값을 반환하고, 널인 경우에만 오른쪽 피연산자를 반환합니다.
  3. 안전 캐스트 연산자 (as?): 타입 변환이 실패할 경우 null을 반환하고, 성공할 경우 해당 타입으로 캐스트합니다. 타입 변환이 실패해도 예외가 발생하지 않습니다.

예시를 통한 사용법

val name: String? = getName()
val length: Int = name?.length ?: 0
val result: String = name as? String ?: "Default"

위의 예시에서 getName 함수는 String 값을 반환하거나 널일 수 있습니다. 안전 호출 연산자를 사용하여 name 변수가 널이 아닌 경우에만 길이를 가져오고, 널 병합 연산자를 사용하여 널인 경우 0을 반환하도록 처리하였습니다. 마지막으로 안전 캐스트 연산자를 사용하여 name 변수를 String으로 캐스트하거나 널인 경우 기본값을 반환하도록 처리하였습니다.

이처럼 널 타입 안전성 연산자는 Kotlin에서 널 값을 다룰 때 코드를 더 안전하게 만들어주고, 널 포인터 예외를 방지하는 데 도움을 줍니다.

참고 자료