null safe 연산자 > IT 기술백서

T?

T가 null 이면 실행을 멈춘다

 

T?:<default>

T가 null 이면 default 를 실행한다

 

T!!

T가 null 이어도 그대로 실행한다.

 

[code]

fun main() {

var a: String? = null

    println(a?.toUpperCase())

    println(a?:”default”.toUpperCase())

    println(a!!.toUpperCase())

}

[/code]

 

실행결과

[code]

null

DEFAULT

Exception in thread “main” java.lang.NullPointerException

 at FileKt.main (File.kt:5) 

 at FileKt.main (File.kt:-1) 

 at sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2) 

[/code]

 

null safe  연산자는 스코프 함수와 사용하면 편리하다.

[code]

fun main() {

var a: String? = null

    

    a?.run {

        println(toUpperCase())

        println(toLowerCase())

    }

}

[/code]

실행결과는 아무것도 나오지 않는다. a가 null 이기 때문에 스코프내의 코드가 실행되지 않는다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤