안드로이드 코틀린 공부 중인데 물음표 붙은 연산자가 종류별로 나와서 헷갈려요. ?. 도 있고 ?: 도 있고 !! 도 있는데 다 비슷하게 null 관련인 건 알겠는데 언제 뭘 써야 하는지 모르겠어요.
지금 이런 상황이거든요. 유저 이름이 null일 수도 있어서요.
val name: String? = getUserName()
val length = name.length // 여기서 컴파일 에러
그냥 name.length 하면 에러 나서 뭘 붙여야 하는데, 어떤 사람은 name?.length 쓰고 어떤 사람은 name!!.length 쓰고 하니까 뭐가 맞는 건지 모르겠어요. 제가 이해한 건요.
val a = name?.length // null이면 그냥 null?
val b = name?.length ?: 0 // null이면 0?
val c = name!!.length // null이면... 터짐?
이렇게 이해한 게 맞나요? !! 는 왠지 위험해 보이는데 그럼 이걸 왜 쓰는 건지도 궁금하고요. ?: 이건 엘비스 연산자라고 부르던데 왜 그런 이름인지는 모르겠지만 아무튼 이 세 개 차이를 실제 예시로 좀 정리해주시면 감사하겠습니다.