자바 개발자들의 가장 큰 적은 바로 NullPointerException (NPE) 입니다. 코틀린은 언어 차원에서 이 폭탄을 완전히 제거했습니다.
코틀린의 모든 변수는 기본적으로 null을 가질 수 없도록 방어막이 쳐져 있습니다. 꼭 null이 들어가야 한다면 타입 뒤에 물음표(?)를 붙여야 하며, 이를 안전하게 다룰 수 있는 특수한 연산자들을 제공합니다.
안전한 호출 ?. : 지뢰(null)가 있는지 톡톡 두드려 봅니다. 지뢰면 터지지 않고 그냥 null을 뱉고 실행을 취소합니다.
엘비스 연산자 ?: : 만약 앞의 값이 null이라면, 미리 준비해둔 안전한 우회로(기본값)로 빠져나가게 해 줍니다.
| 기호 | 이름 | 설명 |
|---|---|---|
| ? | Nullable 타입 | String? 처럼 타입 뒤에 붙여서 null을 허용하게 만듭니다. |
| ?. | 안전한 호출 (Safe Call) | 객체가 null이면 메서드를 실행하지 않고 null을 반환합니다. |
| ?: | 엘비스 연산자 (Elvis) | 좌항이 null일 경우, 우항의 기본값을 대신 반환합니다. |