IT/Android

[Kotlin] 코틀린에서 변수 타입 ? 는 무엇을 의미 하는가

토마토조아 2019. 8. 1. 13:45
728x90

안드로이드 개발을 하면서 코틀린을 배울 필요가 생겨나서 요즘 계속 코틀린에 대한 공부를 하고 있다.

코틀린 코드를 보다면서 간혹 아래와 같은 코드가 보이게 된다.

val languageName: String? = null

위의 코드 예제처럼 변수를 선언할 때 타입 뒤에 ?를 붙이는 경우이다.

?의 의미는 languageName 변수를 String 으로 선언을 하는데,
String 의 값도 가질 수 있고, Null 값을 가질 수도 있다는 의미다.

그래서 만약 아래와 같이 코딩을 한다면 컴파일 시 에러가 발생한다.

// Fails to compile
val languageName: String = null

이런 경우의 의미는 타입 뒤에 ?가 없기 대문에 languageName은 Null 값을 가질 수 없다.

또한 코틀린의 기본 정책은 변수는 Null을 가질 수 없기 때문에, Null을 사용하고자 한다면 반드시 타입 뒤에 ?를 붙여주어야 한다.

코틀린을 계속 공부해보자.

728x90