Kotlin 널 가능성 컨트롤

이성진·2023년 11월 29일
0

TIL

목록 보기
89/95
post-thumbnail

1. Nullable 및 Non-Nullable 유형 :

  • Non-Nullable 타입 : 기본적으로 Kotlin의 모든 유형은 Null을 허용하지 않습니다. 특정 유형(예 :String)의 변수를 선언하는 경우 null 값을 보유 할 수 없습니다. 이러한 변수에 null을 할당하려고 하면 컴파일 시간 오류가 발생합니다.

  • Nullable 타입 : 변수가 Null 값을 가질 수 있또록 하려면 , 해당 타입에 물음표를 추가하여 nullable로 명시적으로 선언해야 합니다. (예 String?) 이는 컴파일러에게 변수가 null일 수 있음을 알립니다.

2. Safe Call (?.) :

  • Kotlin은 nullable 객체의 속성에 접근하거나 메소드를 호출할 때 사용할 수 있는 Safe Call 연산자 ?. 을 도입했습니다. 객체가 null이면 , Safe Call은 아무 것도 하지 않고 null을 반환하여 NullPointerException을 발생시키지 않습니다.

3. Elvis 연산자 (?:) :

  • Elvis 연산자 ?: 를 사용하면 표현식이 null로 평가될 때 기본값을 제공할 수 있습니다. 예를 들어 val length = null?.length ?: 0name이 null이 아니면 name 의 길이를 반환하고 , name 이 null이면 0을 반환합니다.

4. Non-Null 단언 연산자 (!!) :

  • !! 연산자는 강제로 모든 값을 Non-Null 타입으로 변환하고 값이 null인 경우 예외를 발생시킵니다. 이 연산자는 값이 절대 null이 아닐 때만 사용해야 합니다.

5. 안전한 형변환 (as?) :

  • as? 연산자는 타입을 안전하게 형 변환을 시도합니다. 형 변환이 불가능한 경우 ClassCastException을 발생시키는 대신 null을 반환합니다.

6. lateinit 을 사용한 늦은 초기화 :

  • lateinit 수정자를 사용하면 선언 시점에 초기화하지 않고도 Non-Nullable 속성을 선언할 수 있습니다. 이는 나중에 주입되는 의존성에 유용하며 , 예를 들어 Android 개발에서 사용됩니다. 그러나 초기화되기 전에 lateinit 변수에 접근하면 예외가 발생합니다.

7. Null 검사 및 스마트 캐스트 :

  • kotlin은 명시적인 null 검사 (if (x != null))를 지원합ㄴ디ㅏ. 이러한 검사 후에 컴파일러는 해당 범위 내에서 변수를 Non-Nullable 타입으로 스마트 캐스트하여 안전하게 접근할 수 있게합니다.

8. Safe Call 과 함께 let 사용하기 :

  • Safe Call(?.let)과 결합된 let 함수를 사용하면 객체가 non-null일 때 만 코드 블록을 수행할 수 있습니다.

Kotlin은 NullPointerException의 가능성을 줄이고 코드를 더욱 견고하고 명확하게 만들기 위해 null 성을 효과적으로 관리할 수 있는 여러 도구를 제공합니다.

profile
2023.08 ~ Android Kotlin 공부

0개의 댓글