Welcome! Everything is fine.

[Kotlin] 1강. 코틀린에서 변수를 다루는 방법 본문

Kotlin

[Kotlin] 1강. 코틀린에서 변수를 다루는 방법

개발곰발 2023. 11. 27.
728x90

* 인프런 강의 - 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)을 듣고 정리한 내용입니다.

1강. 코틀린에서 변수를 다루는 방법

우테코가 끝나고 코틀린에 대한 공부가 필요하다고 느꼈다.

인프런 블프에서 겟-한 강의를 이용해 기본부터 공부해보기로 했다.🙂

사실 나는 자바를 아주 잘 안다고 할 순 없지만..자바도 복습하며 공부 할 수 있을 것 같아 골랐다!

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

코틀린에서는 모든 변수에 수정 가능 여부(var/val)를 명시해주어야 한다. 아래 예시 코드를 보자.

var number = 10L
val number = 10L

var과 val의 차이는 다음과 같다.

  • var - variable의 약자, 값을 바꿀 수 있음
  • val - value의 약자, 값을 바꿀 수 없음(아직 초기화되지 않은 변수에 한해서 최초 1번 값을 넣어줄 수 있음, val 컬렉션에 element 자체는 추가할 수 있음)

타입을 꼭 작성해야하는 자바와 달리 코틀린은 타입을 의무적으로 작성하지 않아도 된다. 단, 초기값을 지정해주지 않으면 무조건 타입 명시해야한다. 만약 값을 넣어주지 않고 사용하면 에러가 발생한다.

 

다음과 같이 초기값을 지정하지 않고 사용할 경우 에러가 발생한다.

var number: Long
println(number) // 에러

💡 클린코드 TIP

모든 변수는 우선 불변(val)으로 만들고 꼭 필요한 경우 가변(var)으로 변경한다.

Kotlin에서의 Primitive Type

코틀린에서는 모두 Long인데 성능상 문제 없나?

코틀린 공식 문서에서는..

숫자, 문자, 불리언 타입과 같은 타입은 내부적으로 특별한 표현을 갖는다.

이 타입들은 실행 시 Primitive Value로 표현되지만, 코드에서는 평범한 클래스처럼 보인다.

Kotlin에서의 nullable 변수

코틀린에서는 기본적으로 null이 들어갈 수 없도록 해놨다. nullable 변수를 별다른 처리 없이 사용한다면 에러가 발생한다.

var number = 1_000L
number = null // 에러

다음과 같이 안전 호출 연산자인 ? 을 사용해 nullable 변수를 처리할 수 있다. 이렇게 ? 을 붙이면 아예 다른 타입으로 간주된다.

var number: Long? = 1_000L // null이 들어갈 수 있는지 없는지에 대해 명시해줘야함
number = null // 가능

Kotlin에서의 객체 인스턴스화

코틀린은 자바와 다르게 new를 붙이지 않는다.

var person = Person("김민지")