Kotlin - null safety 연산자

CODEDRAGON Development/Kotlin

반응형


 

null safety 연산자

·       as?

·       ?.

·       !!.

·       ?:

 

 

 

as?

http://codedragon.tistory.com/7981

 

 

 

 

 

?.

·       safe call 연산자

·       null 참조로 인한 예외를 방지하기 위해 null 경우 null 반환시켜주어 null 인한 예기치않은 동작으로 부터 안전해질 있습니다.

·       ?. 통해 안전하게 참조할 있습니다.

·       Java에서는 반드시 if문을 사용해 Null 값을 체크해야 하지만(verifyNull3), Kotlin에서는 ?.만으로 보다 간결하게 코드를 작성할 있습니다. 기능은 Nullable 변수가 중첩되어 있을 보다 효과적입니다.

 

 

 

// Java

fun verifyNull3(str: String?): Int?

{

    // str null 아니면 length 값을 반환

    if (str != null){

return str.length

    }

else // str null이면 null 반환합니다.

return null

}

 

// Kotlin

fun verifyNull4(str: String?): Int?

{

// str null 아니면 length 호출되어진 값이 반환됩니다.

// str null이면 length 호출되지 않고 null 되어 null 반환합니다.

return str?.length

 

}

 

 

// Android

fun verifyNull5(editText: EditText?): String?

{

    // Nullable 변수가 중첩되어 있을 때도 ?.통해 safe call 수행

    // editText null 상황과 editText getText() null 상황 모두를 체크합니다.

    return editText?.getText()?.toString()

}

 

 

null 변수

http://codedragon.tistory.com/8030

 

 

 

 

 

!!.

·       변수의 이름 뒤에 !! 기호를 사용하여 nullabe 타입이더라도 (null일지 몰라도) 무조건 참조/호출하는 연산자입니다. (Non-Null 타입으로 강제 캐스팅을 수행합니다.)

·       !! 캐스팅한 변수가 null 경우 kotlin.KotlinNullPointerException 예외가 발생합니다.

 

 

 

 

 

?:

·       엘비스 연산자 Elvis operator

·       Java 삼항 연산자와 비슷한 형태를 가지고 있습니다.

·       앞의 표현식이 null이면 ?: 뒤에 있는 문장을 수행하고 앞의 표현식이 null 아니면 표현식의 결과를 반환합니다. 이를 통해 null safety 처리를 있습니다.

 

표현식 ?: 수행구문

 

 

 

null 변수

http://codedragon.tistory.com/8030

 


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

with()  (0) 2018.12.05
중위표현식, 중위표현식이 가능한 경우  (0) 2018.12.03
in  (0) 2018.12.01
Kotlin - View (뷰)  (0) 2018.11.30
Array - Java vs Kotlin  (0) 2018.11.28