[Kotlin 맛보기] 2. Null 에 대해서...
- kotlin 은 기본 값이 null이 아닌 not null 이다.
- nullable 하게 사용하기 위해서는
?
를 선언해야한다.
null 허용하기
?
str : String
은 java 에서@Notnull String str
과 같음.str : String?
은 java 에서@Nullable String str
과 같음.
null 안정성
엘비스 연산자
?:
- null 대신 결과를 반환시켜줌. 디폴트 값을 선언할 때 편리함.
- 특정 값을 리턴할 수 있음.
var value: String? = null
val resultValue: String = value ?: "EMPTY STRING"
val resultValue: String = value ?: throw NullPointerException()
val resultValue: String = value ?: return
안전한 호출 연산자
?.
- null 이 아닐경우에만 실행시키고, null 일 경우에는 그냥 null 을 리턴한다.
str?.toUpperCase()
if (str != null) {
str.toUpperCase()
} else {
null
}
- 앨비스 연산자를 잘 섞어 사용하면 좋음
- str 이 null 이 아니면
UpperCase
를 하고, null 일 경우에는EMPTY STRING
을 리턴한다.
- str 이 null 이 아니면
str?.toUpperCase() ?: "EMPTY STRING"
null 값이 아님을 보장해주는 연산자
!!
- 단, null 이 들어오면 오류가 발생함.(NPE 발생)
fun nonNull() {
val str: String = "Not null String"
val str2: String = str!! // str 은 null이 아니라는 보증함.
}
코틀린에서 안전한 null 처리하기.
- https://namget.tistory.com/entry/Kotlin-%EC%BD%94%ED%8B%80%EB%A6%B0-%EB%84%90-%EC%95%88%EC%A0%95%EC%84%B1%EC%97%98%EB%B9%84%EC%8A%A4-as-lateinit
- https://jeongupark-study-house.tistory.com/156
- https://thdev.tech/kotlin/2016/08/04/Kotlin-Null-Safety/