더북(TheBook)

코틀린에서는 null이 될 수 있는 타입을 단순히 역참조(dereference)(즉, 멤버 프로퍼티나 멤버 함수에 접근)할 수 없다.

NullableTypes/Dereference.kt

import atomictest.eq

fun main() {
  val s1: String = "abc"
  val s2: String? = s1

  s1.length eq 3 // [1]
  // 컴파일되지 않는다
  // s2.length   // [2]
}

[1]에서는 널이 될 수 없는 타입의 멤버에 접근할 수 있다.

[2]와 같이 널이 될 수 있는 타입의 멤버를 참조하는 경우, 코틀린은 오류를 발생시킨다.

대부분 타입의 값은 메모리에 있는 객체에 대한 참조로 저장된다. 역참조의 의미가 바로 이것이다. 객체에 접근하기 위해서는 메모리에서 객체를 가져와야 한다.

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