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 |