우당탕탕 개발공부

[Kotlin] Null 처리 방법 ( ?와 !! ) 본문

✍ Study/Android Studio

[Kotlin] Null 처리 방법 ( ?와 !! )

냥냥서 2024. 1. 13. 19:38

코틀린은 다른 언어들보다 null처리를 명확하게 해야한다.

nulll이 될 수 있는 타입을 지원해 NullPointerException 오류를 컴파일시점에서 감지할 수 있다.

 

코틀린은 기본적으로 변수에 null 값을 넣을 수 없으며,

변수에 맞는 문자(? or !!)를 데이터 형식 뒤에 붙여야 한다.

 


 

 

? (안전한 호출 연산자) , Safe Call
💥 변수가 null인 경우, null 반환


💥 null이 아닌 경우, 속성이나 메소드 호출

즉, null일 수 있는 객체의 속성과 메서드에 안전하게 접근 가능!

( NullPointerException를 방지! )

 

 

val a : String? =null
val length = str?.length

null이 가능한 변수 'a'를 선언하고 null값을 할당

'a'가 null이므로 str? 표현식을 사용

length도 null로 간주되어 length에는 null값이 할당된다.

 


 

 

!! (널 아님 단언), Non-null Assertion
💥 왼쪽 피연산자 값이 null이 아니면 -> 정상 수행


💥 null인 경우 -> NullPointerException 예외 발생

말 그대로 해당 표현식이 null이 아님을 단정하는 연산자

 

 

val name:String = name!!

 

name이 null이 아님이 보장(단정)!