ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] Null
    Programming/Kotlin 2020. 7. 15. 20:56

    코틀린 변수 선언은 기본적으로 Null을 허용하지 않는다.

    var a: Int = 30

    var b: String = "Hello"

     

    null 가능한 선언

    val a: Int? = null

    val b: String? = null

     

    세이프 콜(?.)과 non-null 단정 기호(!!.)를 활용

    • 세이프 콜 :  null이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 호출하도록 도와주는 연산자로 사용할 변수 이름 뒤에 ?.를 작성하면 됨.
    • println("str1: $str1 length: ${str1?.length}") // str1을 세이프 콜로 안전하게 호출
    • non-null 단정기호는 null이 아님을 단정하므로 컴파일러가 null검사 없이 무시한다.
    • 따라서 null이 할 당되어 있을지라도 컴파일은 잘 진행되지만, 실행중에는 NPE를 발생시킨다.
    • 따라서 되도록이면 사용하지 않는 것이 좋다.

    세이프 콜과 엘비스 연산자를 활용해 null을 허용한 변수 더 안전하게 사용하기

    • null을 허용한 변수를 조금 더 안전하고 간단하게 사용하려면 세이프 콜 ?.와 엘비스(Elvis) 연산자 ?:를 함께 사용하면 됩니다. 엘비스 연산자는 변수가 null인지 아닌지 검사하여 null이 아니라면 왼쪽의 식을 그대로 실행하고 null이라면 오른쪽의 식을 실행합니다.
    •  
    fun main() {
    	var str1 : String? = "Hello Kotlin"
        str1 = null
        println("str1: $str1 length: $str1?.length ?: -1}") //세이프 콜과 엘비스 연산자를 활용
        // str1이 null인지 체크하고, null이라면 -1을 리턴한다.
    }

     

    Kolin 에서는 기본적으로 NotNull이고, Nullable 표현에만 ? 가 사용된다.

     

    'Programming > Kotlin' 카테고리의 다른 글

    코틀린 함수 관련 개념  (1) 2022.05.11
    About Kotlin  (0) 2020.11.05
    [Kotiln] 범위 지정 함수 - let,apply,with,run  (0) 2020.10.28
    [Kotlin] 접근제한자  (0) 2020.07.31
    [Kotlin] 자료형과 변수  (0) 2020.07.15
Designed by Tistory.