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