더북(TheBook)

코틀린의 해법은 아마도 두 접근 방식을 가장 잘 절충한 방법일 것이다. 코틀린에서 모든 타입은 기본적으로 널이 될 수 없는(non-nullable) 타입이다. 하지만 무언가 null 결과를 내놓을 수 있다면, 타입 이름 뒤에 물음표(?)를 붙여서 결과가 null이 될 수도 있음을 표시해야 한다.

NullableTypes/NullableTypes.kt

import atomictest.eq

fun main() {
  val s1 = "abc"            // [1]
  
  // 컴파일 오류
  // val s2: String = null  // [2]
  
  // 널이 될 수 있는 정의들
  val s3: String? = null    // [3]
  val s4: String? = s1      // [4]
  
  // 컴파일 오류
  // val s5: String = s4    // [5]
  val s6 = s4               // [6]
  
  s1 eq "abc"
  s3 eq null
  s4 eq "abc"
  s6 eq "abc"
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.