*Null Safety(?, ?., ?:)
-null로 인해 프로그램이나 앱 전체가 멈출 수 있음
-if코드 중 1>2 가 false이기 때문에 one변수는 null값을 가지게 됨
-이 때 null포인터 예외가 발생하면서 프로그램이 다운됨 (안드로이드 스튜디오는 컴파일되지 않게 막아줌)
-하지만 코드 양이 많아지면 이런 많은 상황이 발생되기 때문에 안전장치(Null Safety)를 만듦
--( ? ) : null값 허용(Nullable, 물음표)
--( ?. ) : 안전한 호출(Safe Call, 물음표와 온점)
--( ?: ) : null값 대체하기(Elvis Operator, 물음표와 콜론)
*null값 허용하기(Nullable, 물음표) : ?
-코틀린은 기본적으로 null값을 허용하지 않음
-null값을 허용하기 위해서는 타입 뒤에 ? 입력
-ull허용 설정 : 변수, 파라미터, 함수 리턴
--변수 null허용 설정 : 변수 선언 시 변수 타입 뒤에 ? 입력하여 null값 허용
--함수 파라미터에 null허용 설정 : 함수 파라미터 뒤에 ? 입력한 뒤 함수 내부에서 조건문으로 null인지 아닌지 체크 필수
--함수 리턴 타입에 null허용 설정 : 함수 리턴타입에 ? 를 붙여 null값 허용
*안전한 호출(Safe Call, 물음표와 온점) : ?.
-null체크를 간결하게 할 수 있음
-Nullable인 변수 다음에 ?. 사용 시 해당 변수가 null값일 경우 ?. 다음에 있는 메서드나 프로퍼티를 호출하지 않음
-str변수 자체가 null일 경우 length프로퍼티를 호출하지 않고 바로 null반환
*Null값 대체하기(Elvis Operator, 물음표와 콜론) : ?:
-원본 변수가 null일 때 넘겨줄 기본값 설정
-Safe Call(?.)다음에 호출되는 프로퍼티 뒤에 다시 ?: 을 붙이고 기본으로 설정할 값 표시할 때 null값일 경우 표시한 값 반환
-str변수가 null일 경우 가장 뒤에 표시한 값인 0 반환
***Null Safety구분하는 법
이 포스팅에 작성한 내용은 고돈호, ⌜이것이 안드로이드다⌟, 한빛미디어(주), 2022 에서 발췌하였습니다.
'Android App > Kotlin' 카테고리의 다른 글
스코프 함수(run, let, apply, also, with) (0) | 2022.10.31 |
---|---|
지연 초기화(lateinit, lazy) (1) | 2022.10.31 |
클래스 - 요약정리 (0) | 2022.10.31 |
클래스 - 설계도구(접근 제한자, 제네릭) (0) | 2022.10.30 |
클래스 - 설계도구(패키지, 추상화, 인터페이스) (0) | 2022.10.30 |