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? 타입의 널이 될 수 있는 수신 객체에는 안전한(?.) 호출이나 널 아닌 단언(!!.) 호출만 사용할 수 있다는 뜻).

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