[Kotlin] 변수를 다루는 방법

모지리 개발자·2022년 11월 14일
0

Kotlin

목록 보기
1/5

이 글은 인프런의 자바 개발자를 위한 코틀린 입문의 영상을 보고 공부하면서 정리하는 글입니다.

목차

1. 변수 선언 키워드 - var과 val의 차이점

2. Kotlin에서의 Primitive Type

3. Kotlin에서의 nullable 변수

4. Kotlin에서의 객체 인스턴스화


1. 변수 선언 키워드 -var과 val의 차이점

java

long number1 = 10L;
final long number2 = 10L;

Long number3 = 1_000L;
Person person = new Person("박창환");

Kotlin

var number1 = 10L
val number2 = 10L

코틀린에서는 모든 변수에 수정 가능 여부(var/val) 를 명시해주어야합니다.

2. Kotlin에서의 Primitive Type

  1. 자바에서는 타입을 꼭 명시하지만 코틀린에서는 타입을 의무적으로는 작성하지 않아도 컴파일러가 추론을 해줍니다. 하지만 원한다면 아래와 같이 타입을 지정해줄 수 있습니다.

java

long number1 = 10L;
Long number3 = 1_000L;

Kotlin


var number = 10L <- 이렇게 작성하면 컴파일러가 알아서 추론해줍니다.

var number1: Long = 10L <- 타입을 명시하는 것도 가능
val number2: Long = 10L

초기값을 지정해주지 않는 경우는?
무조건 타입을 명시해주어야합니다.
또 값을 넣어주지 않고 사용하려고 하면 에러가 발생합니다.

TIP
모든 변수는 우선 val로 만들고 꼭 필요한 경우 var로 변경합니다.

3. Kotlin에서의 nullable 변수

  1. 자바에서는 long은 primitive type/Long은 reference type으로 다르게 구분되지만 코틀린은 구분이 없습니다. 즉 프로그래머가 boxing / unboxing을 고려하지 않아도 되도록 kotlin이 알아서 처리해줍니다.

Java에서 reference type은 null값이 들어갈 수 있음을 의미하기도 하는데 Kotile에서는 어떻게 작성할까?
아래와 같이 작성합니다. 물음표를 붙입니다.

java

Long number3 = null;

Kotlin

var number3: Long? = 1_000L

코틀린에서 null이 변수에 들어갈 수 있다면 "타입?" 사용해야합니다.

4. Kotlin에서의 객체 인스턴스화

java

Person person = new Person("박창환");

Kotlin

var person = Person("박창환")

코틀린에서는 객체 인스턴스화를 할때에는 new를 붙이지 않아야합니다.

이번 강의로 알게 된 것

  • 모든 변수는 var/val를 붙여주어야 합니다.
    - var : 변경 가능
    - val : 변경 불가능(read-only)
  • 타입을 명시적으로 작성하지않아도, 타입이 추론됩니다.
  • Primitive Type과 Reference Type은 구분하지 않아도됩니다.
  • Null이 들어갈 수 있는 변수는 타입 뒤에 ?를 붙여주어야합니다.
  • 객체를 인스턴스화 할 때 new를 붙이지 않아야합니다.
profile
항상 부족하다 생각하며 발전하겠습니다.

0개의 댓글