Kotlin의 모든 variables(변수) 혹은 data structure(데이터 구조)는 data type을 갖습니다.

data type을 선언해주어야 compiler(컴파일러)에서 이해하고 해석할 수 있습니다.

 

값을 변경할 수 있는 변수를 mutable variables이라고 합니다. 즉, var로 선언한 변수입니다.

(mutable은 영어단어로 '변할 수 있는, 잘 변하는' 이라는 뜻을 가지고 있습니다.)

 

반대로 한번 값을 할당하면 변경할 수 없는 변수를 immutable variables라고 합니다.

 

그럼 변수에 값을 할당함에 따라 Data type이 설정되는지 확인해 보겠습니다.

a 변수에 정수 1을 할당하였고, 정수 b에는 "문자"를 할당했습니다. 명시적으로 Data Type을 선언하지 않았지만 할당된 값의 Data type에 따라 변수의 Data type이 결정되었습니다.  

 

위 결과에서 정수는 int라고 출력이 되고 문자열은 class java.lang.String이라고 출력되었을까요?

엄밀히 말하면 둘다 class입니다. 차이점이 있다면, JVM에는 int와 integer가 있습니다.

int는 Primitive 자료형이라고 합니다. 즉, 데이터를 가지는 원시적 자료형을 뜻합니다.

그렇지만 Kotlin에서는 primitive 자료형인 Int에 많은 기능을 부여하여 Integer를 사용하지 않아도 되도록 하였습니다.

오히려 Integer를 사용하면 경우에 따라 예상치 못한 오류가 발생할 수 있습니다.

실제로 위 코드에 Integer로 선언한 부분 왼쪽에 !표가 있습니다.

마우스 커서를 이동해 올려보면 경고 문구가 나옵니다.

기억하세요. Kotlin에서는 Int를 사용합니다.

Kotlin에서 Int가 아닌 Integer로 판단되어야하는 경우 알아서 Integer로 Data type을 설정해줍니다.

코딩을 할때는 Int로 선언하고 사용하면 문제가 발생하지 않습니다.

예를 들어, Int는 primitive 자료형으로 null 값을 할당 할 수 없습니다.

 

그렇지만 Kotlin에서는 ? operator를 제공합니다. 즉 ?를 사용해 null이 될 수 있다고 알려줍니다.

? Operator

실행 결과 null을 할당했을때 a의 Data type도 null 입니다.

a 값을 출력한 결과가 null 인것은 알겠는데, a.javaClass 출력값이 왜 null 일까요?

a?.javaClass는 ? operator에 따라 a가 null이 아니면 a.javaClass를 a가 null 이면 null을 반환합니다.

 

a에 1을 할당했을때  Data type이 Int가 아니라 Integer입니다. 

왜 그럴까요? Kotlin에서 null 할당이 가능한 Integer class로 알아서 제공해준 결과입니다.

그렇지만, 개발자 입장에서는 Int와 Integer를 구분해서 사용할 필요가 없습니다.

Kotlin이 다른 언어에 비해서 사용하기 편한 이유 중에 하나입니다.

(이 외에도 많겠지요... ? operator의 존재도 마찬가지로 Kotlin이 사용하기 편한 이유가 되겠네요.)

'DEVELOPMENT > Kotlin' 카테고리의 다른 글

6. Kotlin, Basic Data Types - Characters  (0) 2024.02.25
5. Kotlin, Basic Data Types - Boolean  (0) 2024.02.25
4. Kotlin, Basic Data Types - Numbers  (0) 2024.02.23
2. Kotlin, Variables  (0) 2024.02.22
1. Kotlin "Hello, world!!!"  (0) 2024.02.22

영어로 'Variables', 우리말로 '변수'라고 합니다.

변수는 데이터를 저장하는 곳입니다.

 

모든 프로그램 언어에는 Variables(변수)가 있습니다. 

Kotlin에서는 funtion(함수)를 선언할때 fun을 앞에 붙이듯이  

변수를 선언할때는 val 또는 var을 앞에 붙입니다.

 

val은 한번 값을 저장하면 변경할 수 없는 변수 선언입니다.

var은 몇번이고 값을 변경하여 저장할 수 있습니다.

 

변수에 값을 설정하는 방법은 operator = 을 사용하면 간단히 해결됩니다.

 

Kotlin Play에서 val로 선언한 변수의 값을 변경해볼까요.

val로 선언한 변수에 값을 변경하려고 시도

"Val 변수는 값을 바꿀수 없어요." 라고 알려줍니다.

 

그럼 var로 선언한 변수는 어떨까요?

var로 선언한 변수에 값을 변경하려고 시도

문제없이 잘 바뀌어서 출력됩니다.

 

Kotlin 공식 문서에서는 변수에 할당할 내용을 변경하지 않으면 val을 사용하라고 권장합니다.

변경하면서 사용해야하는 경우, 그러니까 필요한 경우에만 var을 사용하여 변수를 선언하라고 합니다.

 

Kotlin 변수 선언에 대해서 알아보았습니다. 

변수를 선언하거나 사용하는 것에는 다양한 방법이 있습니다.

우선은 Kotlin의 val과 var을 이해하는 것으로 마무리하겠습니다.

 

'DEVELOPMENT > Kotlin' 카테고리의 다른 글

6. Kotlin, Basic Data Types - Characters  (0) 2024.02.25
5. Kotlin, Basic Data Types - Boolean  (0) 2024.02.25
4. Kotlin, Basic Data Types - Numbers  (0) 2024.02.23
3. Kotlin, Data Types - Basics  (0) 2024.02.22
1. Kotlin "Hello, world!!!"  (0) 2024.02.22

+ Recent posts