강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

양성빈(Robert)님의 프로필 이미지
양성빈(Robert)

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

2강. 코틀린에서 null을 다루는 방법

널 아님 단언 관련 질문

해결된 질문

작성

·

41

0

태현님! 안녕하세요, 먼저 이런 좋은 강의를 만들어 주셔서 감사드립니다 🙂

다만, 듣다가 또 하나의 질문이 있어서 말씀드리고 싶습니다! 바로 널 아님 단언 관련입니다!
예제 코드에서는 아래와 같이 작성을 해주셨는데요!

fun startsWith(str: String?): Boolean {
    return str!!.startsWith("A")
}

이런 경우 str 파라미터가 null이 들어올 가능성이 있지만 해당 코드를 실행할때 null이 절대 아니야라고 명시적으로 표현하기 위하여 !!를 붙여준다고 이해했습니다!

다만, 이런 경우는 굳이 널 아님 단언을 사용하는게 아니라 파라미터의 String?타입을 String으로 두면 어떨까 싶은 생각이 들어서요! 이렇게 된다면 굳이 널 아님 단언을 사용할 필요가 없어 보이는데 다른 곳에서 사용하는 예시가 따로 있는지 궁금하여 질문을 드리게 되었습니다!

답변 1

1

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 성빈님! 🙂 언제나 환영합니다.

 

넵! 말씀해주신 것처럼 해당 필드가 절대 null이 아니면 처음부터 String 으로 선언하면 되겠지만

  • [시점에 따라] 처음 DB에 저장되었을 때는 비워두고 나중에 데이터를 채운다거나

  • [타입에 따라] 하나의 데이터가 A 유형일 때는 필수값이고 B 유형일 때는 선택값이라 A 유형을 처리하는 경우에만 null이 아니라거나...

하는 경우가 있다 보니 !! 이란 것은 "절대 이 경우 null이 아님을 밝히기 위한" 용도로 쓸 수 있다는 의미였습니다.

 

답변이 도움이 되었으면 좋겠습니다. 감사합니다. 🙏

태현님 답변 감사드립니다!

양성빈(Robert)님의 프로필 이미지
양성빈(Robert)

작성한 질문수

질문하기