본문 바로가기

Kotlin

6) Nullable 과 NonNull

자바와 달리 Kotlin에서는 따로 정해진 null 예외처리가 없으면 기본적으로 변수에는

null값이 들어갈 수 없다. 그래서 null값을 허용하기 위해 nullable을 활용한다.

그 연산자를 알아보자

 

? => Nullable 타입으로 만들어주기

NPE : Null Pointer Exception은 자바에서는 런타임 시에만 잡을 수 있는 에러 이지만

코틀린에서는 컴파일 시점에 잡을 수 있도록 "?"연산자를 지원한다.

Nullable은 해당 변수가 null 타입이어도 된다는 의미이다.

 

?.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