관리 메뉴

피터의 개발이야기

[Kotlin] ?(물음표)와 !!(느낌표 두개) 본문

Programming/Kotlin

[Kotlin] ?(물음표)와 !!(느낌표 두개)

기록하는 백앤드개발자 2024. 6. 28. 10:10
반응형

 

ㅁ 들어가며

ㅇ 코틀린에서 `?`와 `!!`는 null 안전성을 처리하는 데 중요한 역할을 한다. 

ㅇ 이 두 연산자는 null 값을 다루는 방법에 차이가 있다.

ㅁ 요약

ㅇ `?`는 변수나 객체가 null 값을 가질 수 있음을 나타내며, null 안전성을 보장하기 위해 사용된다.
ㅇ `!!`는 변수나 객체가 null이 아님을 단언하며, null일 경우 런타임에 `NullPointerException`을 발생시킨다.

이 두 연산자를 적절히 사용하면 코틀린에서 null 안전성을 효과적으로 관리할 수 있다.

 

ㅁ `?` (Nullable 타입)

ㅇ `?`는 변수나 객체가 null 값을 가질 수 있음을 나타낸다. 

ㅇ 이를 통해 컴파일러는 해당 변수가 null일 수 있음을 인지하고, null 안전성을 보장하기 위한 추가 검사를 수행한다.

var name: String? = "Kotlin"
name = null // 허용됨

ㅇ 이 경우, `name` 변수는 null 값을 가질 수 있다. 따라서 `name`을 사용할 때는 null 체크를 해야 한다.

 

val length = name?.length 
// name이 null이면 length는 null, 아니면 name의 길이

 

ㅁ `!!` (Non-null Assertion)

ㅇ `!!`는 변수나 객체가 null이 아님을 단언한다. 

ㅇ 만약 해당 변수가 null이라면, 런타임에 `NullPointerException`이 발생한다.

ㅇ 이는 개발자가 해당 변수가 null이 아님을 확신할 때 사용한다.

 

var name: String? = "Kotlin"
val length = name!!.length // name이 null이면 NullPointerException 발생

ㅇ 이 경우, `name`이 null이 아니라고 단언하고 `length`를 가져온다. 

ㅇ 만약 `name`이 null이라면, 예외가 발생한다.

ㅁ 함께 보면 좋은 사이트

[Kotlin] ?(물음표)와 !!(느낌표 두개)의 사용

 

반응형
Comments