해결된 질문
작성
·
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이 아님을 밝히기 위한" 용도로 쓸 수 있다는 의미였습니다.
답변이 도움이 되었으면 좋겠습니다. 감사합니다. 🙏
태현님 답변 감사드립니다!