자바와 달리 Kotlin에서는 따로 정해진 null 예외처리가 없으면 기본적으로 변수에는
null값이 들어갈 수 없다. 그래서 null값을 허용하기 위해 nullable을 활용한다.
그 연산자를 알아보자
? => Nullable 타입으로 만들어주기
NPE : Null Pointer Exception은 자바에서는 런타임 시에만 잡을 수 있는 에러 이지만
코틀린에서는 컴파일 시점에 잡을 수 있도록 "?"연산자를 지원한다.
?.toUpperCase()
null이 아니면 toUpperCase()를 하고 null이면 null을 반환
var nameInUpperCase = name.toUpperCase() // name이 null이면 NPE가 나지만
var nullNameInUpperCase : String? = nullName?.toUpperCase() // 얘는 ?. 를써서 null이 허용된다.
?: 엘비스프레슬리 연산자
null이 아닐 경우와 null일 경우를 모두 대비하게 해주는 연산자
val lastName:String? =null
val fulName:String = name+""+(lastName?:"No lastName") // lastName이 null 이 아니면 값 그대로 쓰임
// lastName?:"양념치킨" ==> lastName이 null이면 양념치킨을 써라,,
!!
이거 null 일리 없으니까 null 아니라고 생각해!! 라는 의미
val mNotNull:String = str!!
.? + let 함수
let함수는 스코프 함수로서 원래는 그냥 람다식 내부로 옮겨서 실행하지만
? 가 붙어있으면 해당 변수 또는 함수가 null 인지 아닌지 판별해 아니면 실행하는 거다.
'Kotlin' 카테고리의 다른 글
IntRange 타입과 난수 발생시키기 (0) | 2021.07.28 |
---|---|
7) 클래스 (0) | 2021.07.20 |
5) 반복문 (0) | 2021.07.16 |
4) Array and List (0) | 2021.07.15 |
3) 조건식 (0) | 2021.07.15 |