Null 안정성은 Kotlin 언어의 핵심 특징 중 하나입니다. Kotlin은 null 참조를 허용하지 않는 데이터 타입을 통해 NullPointer 예외를 방지합니다. 이를 통해 Kotlin 코드는 보다 안정적이고 명확해집니다.
- Null 불가 타입
Kotlin에서 변수를 선언할 때 타입 뒤에 물음표(?)를 붙이지 않으면 해당 변수는 null 값을 가질 수 없습니다. 이는 변수가 항상 non-null 값을 가지도록 보장합니다.
예제:
var nonNullString: String = "Hello, Kotlin!"
nonNullString = null // 컴파일 오류
이 예제에서 nonNullString
은 non-null String
타입이므로 null 값을 가질 수 없습니다.
- Null 가능 타입
변수가 null 값을 가질 수 있게 하려면 타입 뒤에 물음표(?)를 붙여야 합니다. 이를 통해 해당 변수는 null 값을 가질 수 있게 됩니다.
예제:
var nullableString: String? = "Hello, Kotlin!"
nullableString = null // 이 코드는 문제 없음
이 예제에서 nullableString
은 null 가능 String
타입이므로 null 값을 가질 수 있습니다.
- Null 검사
Null 가능 타입의 변수를 사용하기 전에는 해당 변수가 null인지 확인해야 합니다. 이를 위해 ?.
, ?:
, !!.
등의 연산자를 사용할 수 있습니다.
예제:
var nullableString: String? = "Hello, Kotlin!"
val length: Int? = nullableString?.length // null이 아니면 길이를 반환, null이면 null을 반환
val lengthOrDefault: Int = nullableString?.length ?: 0 // null이 아니면 길이를 반환, null이면 0을 반환
val lengthOrCrash: Int = nullableString!!.length // null이 아니면 길이를 반환, null이면 NullPointerException을 던짐
이 예제에서 nullableString
은 null 가능 타입이며, length
, lengthOrDefault
, lengthOrCrash
변수는 각각 ?.
, ?:
, !!.
연산자를 사용하여 nullableString
의 길이를 계산합니다.
Kotlin의 null 안정성은 코드의 안정성을 높이고 NullPointerException을 방지하는 데 중요한 도구입니다. 이를 통해 Kotlin은 보다 안정적인 코드 작성을 가능하게 합니다.