kotlin 문법 1 - nullSafe -> null safe operator ( ?. ), Elvis operator ( ?: )

하이루·2022년 1월 18일
0

null이 될 수 있는 type

--> kotlin은 null이 될 수 있는 타입을 명시적으로 표시할 수 있음

 val a: Int? = null

위의 코드에서 만약

if (s != null)

부분을 빼고 코딩했다면 nullSafe오류가 발생함 -> null에 대해 그만큼 철저함


null safe operator -> ?.

이후 메소드를 다룰때 null을 안전하게 처리하기 위해 코틀린은 ?.연산자를 지원함

 s?.length 
// s가 null일 경우 s 뒤에 있는 확장함수가 실행되지 않음 --> 바로 null을 반환함
// s가 값이 있을 경우 s 뒤에 있는 확장함수가 정상적으로 실행됨

위의 코드에서 s에 ? 가 없다면 nullsafe오류가 발생함


Elvis operator -> ?:

?: 연산자는 좌항이 null이면 null을 반환함

그리고 코드를 작성하는 중에 해당 값이 null인 경우 default값을 주고 싶은 경우가 생김

 (위의 ?.의 경우ㅡ, null이면 바로 null을 반환함 )

이런 경우에 ?: 연산자를 사용하면 됨

예제 1)

해당 코드의 경우
s 의 값이 null 이면 "NoName"이 반환되고,
s 의 값이 null이 아니면 s의 값이 반환됨

예제 1-1) -> 예제 1)과 같은 의미를 가지고 있음

예제 2) --> ?:의 우항으로 return이나 throw를 넣어줄 수도 있음

profile
ㅎㅎ

0개의 댓글