우당탕탕 개발공부
[Kotlin] Null 처리 방법 ( ?와 !! ) 본문
코틀린은 다른 언어들보다 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이 아님이 보장(단정)!