기본적으로 Int는 null을 할당 할 수 없다.
var rocks: Int = null
→ error: null can not be a value of a non-null type Int
? 연산자를 사용한다면 null을 선언 할 수 있습니다.
var marbles: Int? = null
List와 같은 복잡한 데이터 유형이 있는 경우:
기존 null 체크 코드
var fishFoodTreats = 6
if(finishFoodTreats != null) {
finishFoodTreats = finishFoodTreats.desc()
}
? 연산자를 이용한 null 체크
var fishFoodTreats = 6
fishFoodTreats = fishFoodTreats?.desc()
?: 연산자를 사용하여 null 테스트를 연결할 수 있습니다.
fishFoodTreats = fishFoodTreats?.desc() ?: 0
if finishFoodTreats is not null 이면 감소하고 사용합니다. 그렇지 않으면 뒤에 있는 값인 ?: 0 을 사용하십시오.
참고: ?: 연산자는 Elvis Presley가 머리에 스타일을 적용한 방식 인 퐁파두르 헤어 스타일이 있는 옆구리에 웃는 얼굴과 같기 떄문에 "Evis operator"라고도 합니다.
NullPointerExceptions을 정말 좋아한다면 null이 아닌 어설 션 연산자 !!(double-bang or bang bang)은 모든 값을 null이 아닌 유형으로 변환하고 예외를 throw합니다.
val len = s!!.length // throws NullPointerException if s is null
가능하면 !!연산자는 사용하지 않는게 좋습니다. 때로는 Java레거시 다룰 때 더블 뱅이 필요합니다.
JVM 메모리 구조 (0) | 2022.06.15 |
---|---|
[Kotlin, Android] let, with, run, apply, also (0) | 2021.05.09 |
동영상 보며 코루틴동영상 보며 코루틴 요약하기 (0) | 2021.03.28 |
Android GPS Tutorial (0) | 2021.02.20 |
[Android] GPS 동작 원리 (0) | 2021.01.29 |