ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Kotlin ] Null - 세이프콜, not-null, 엘비스 연산자
    카테고리 없음 2020. 7. 29. 17:34

     

    Kotlin은 변수를 사용할 때 기본적으로 Null을 허용하지 않습니다. 만약 값이 할당되지 않은 변수를 사용하면 오류가 발생합니다.

     

     Null 할당을 허용하기

     

    세이프콜

    변수에 Null을 할당을 허용하려면 자료형 뒤에 물음표 기호(?)를 붙이면 됩니다.

    val a: Int? = null
    val b: String? = null

    Nullable한 변수를 선언하게 될 경우 NullPointerException(NPE) 오류가 발생할 수 있습니다.

    따라서 Kotlin에서 Null이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 사용할 수 있는 기능을 제공합니다. 이를 세이프콜(?)이라고 합니다.

    not-null

    만약 세이프콜을 사용하지 않고 코드를 작성하고 싶으면 not-null 단정기호(!!)를 사용할 수 있습니다.

    not-null 단정 기호는 null이 아님을 단정지으므로 컴파일러가 null 검사 없이 무시합니다. 따라서 null이 할당된 변수가 호출될 경우 NPE를 발생시킵니다.

     

    엘비스 연산자 ( Elvis operator )

    str1이라는 문자열 변수에 값이 존재할 때는 문자열의 길이를 반환하지만, 그렇지 않을 때는 null 대신 -1을 반환합니다. 모습이 C 언어의 삼항 연산자와 비슷하지만 엘비스 연산자는 물음표(?)와 콜론(:) 문자 사이에 아무것도 들어가지 않습니다.

     

     

    출처

    댓글

Designed by Tistory.