본문 바로가기
개발 관련 공부/코틀린

코틀린에서 ?와 !!

by 슴새 2022. 9. 14.
반응형
이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다.

코틀린에선 기본적으로 null 값을 변수에 할당할 수 없다.
변수에 null 값을 넣고 싶을때 ?를 사용한다. 변수 타입 뒤에 붙여주면 된다.

var notNull:Int = null	//오류
var notNull:Int? = null	//정상


몰?루? 같은 느낌...진짜 생소하네ㅋㅋㅋ

반대로 절대 null값을 넣으면 안되는 경우 !!를 사용한다.

var notNull:Int = 0		//기본값은 null허용x
var okNull:Int? = 10	//null이 들어올 수 있음을 의미
notNull = okNull!!		//ofNull은 null을 허용한 상태이기 때문에 !!로 처리해야 오류없이 실행됨
//그러나 위의 코드에서 okNull에 null값이 들어가면 오류가 발생함

이러한 문법은 대표적으로 프래그먼트 기본 설정에서 찾아볼 수있다.

private var _binding: FragmentLetterListBinding? = null
//get()은 이 속성이 'get-only'임을 나타냄. 가져올수만 있고 다른 변수에 할당할 수 없음.
private val binding get() = _binding!!

_binding변수가 null을 허용해야 하는 이유는, 프래그먼트는 onCreateView()가 호출될 때까지 레이아웃을 확장할 수 없기 때문이다.

참고자료:https://taetoungs-branch.tistory.com/73

반응형

'개발 관련 공부 > 코틀린' 카테고리의 다른 글

Unit 3-3  (0) 2022.09.14
Unit 3-2  (0) 2022.09.14
Unit 3-1(2)  (0) 2022.09.14
Unit 3-1(2)  (0) 2022.09.14
Unit3-1(1)  (0) 2022.09.13

댓글