더북(TheBook)

 

icon_sec

38
안전한 호출과 엘비스 연산자

코틀린은 널 가능성을 편리하게 처리할 수 있도록 여러 연산자를 제공한다.

널이 될 수 있는 타입에는 여러 제약이 가해진다. 널이 될 수 있는 타입의 참조를 단순히 역참조할 수 없다.

SafeCallsAndElvis/DereferenceNull.kt

fun main() {
  val s: String? = null
  // 컴파일되지 않는다
  // s.length // [1]
}

[1]의 주석을 해제하면 ‘Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?’이라는 컴파일 오류가 발생한다(String? 타입의 널이 될 수 있는 수신 객체에는 안전한(?.) 호출이나 널 아닌 단언(!!.) 호출만 사용할 수 있다는 뜻).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.