본문 바로가기
프로그래밍/Kotlin

Kotlin - 변수, 상수, Non-null, Nullable

by pentode 2021. 7. 24.

※ 값을 저장할 수 있는 변수와 상수를 만드는 방법입니다.

- 값을 변경할 수 있는 변수

var title: String = "offbyone"


- 값을 변경하지 못하는 상수

 

  val count: Int = 20


※ 변수와 상수에 초기값을 주지 않고 사용하려고 하면 컴파일시 에러가 발생합니다.


※ 변수가 null값을 가질 수 있는지 지정합니다. null은 아무것도 없다는 뜻입니다.

- Non-null 은 Null값을 가질 수 없는 타입입니다. 기본적으로 Null을 가질 수 없습니다.

- Nullable은 null값을 가질 수 있는 타입입니다. 타입 뒤에 물음표(?)를 붙입니다.

 

String title: String? = null


※ 한 변수의 값을 다른 변수에 할당합니다.

 

 var count: Int
 var total: Int

 count = 1
 total = count


※ Nullable 타입과 Non-null 타입의 할당

- Nullable 타입에서 Non-null 타입을 할당할 수 있습니다.

 

 var count: Int = 1
 var total: Int? = count


- Non-null 타입에 Nullable은 할당할 수 없습니다.


※ Null safety를 위한 안전호출 연산자(safe call operator)

 - Kotlin은 모든 것이 객체입니다. 그러므로 객체의 다양한 특성을 사용할 수 있습니다. 하지만 객체의 값이 null 이라면 객체에 대해 어떤 작업을 하려고 하면 아무것도 없으므로 에러가 발생합니다.
 안전호출 연산자는 Nullable 변수(객체)를 사용할 때 null일 경우 처리를  할 수 있도록 도와줍니다.

 

var title: String? = "제목입니다."

  
 - 글자의 길이를 출력하기 위해서 다음과 같이 마침표(.) 객체 연산자를 사용할 수 있습니다.

 

println(title.length)


 
 - 변수 title이 Nullable이므로 값이 null일 경우 에러가 발생합니다. 이때 안전 호출 연산자인 ?.을 사용할 수 있습니다.

 

println(title?.length)

  
 - title이 null이라면 에러가 발생하지 않고 null을 반환합니다.

반응형