안전 호출 연산자는 null이 들어갈 수도 있는 메소드에 대해서 말 그대로 안전히 호출하게 해준다
예를 들어 test?.test() 처럼 메소드를 실행시킨다고 하자
그러면 이것은 if(test ≠ null) { test.test() } else { null } 과 같다
정리하면 호출하려는 값이 null이 아니면 메소드를 실행하고 null이면 실행하지 않고 null을 반환한다
fun printAllCaps(s: String?) {
// s가 널이 될 수 있는 타입의 경유
// S?.upperCase() 식의 결과 타입은 String?
val allCaps: String? = s?.uppercase()
}
엘비스 연산자는 null을 편리하게 처리할 수 있게 해주는 연산자이다
return userRepository.findByEmail(accountId)
?: throw UserNotFoundException.EXCEPTION
예시로 위 같은 코드가 있다 만약 email을 조회했을 때 null이라면 우항의 연산인 예외를 처리해준다
코틀린 타입 캐스트 연산자는 as
대상 값을 as로 지정한 타입으로 바꿀 수 없다면ClassCastException 발생