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

말하는 감자·2025년 5월 6일
0
post-thumbnail

자바 개발자를 위한 코틀린 입문

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

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

JAVA에서 long 과 final long의 차이 -> 가변인가, 불변인가(read-only)

var -> 가변 - 값이 변경될 수 있는 변수 (varialbe의 약자)
val -> 불변 - 값이 변경될 수 없는 변수 (value의 약자)

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

코틀린에서는 타입을 자동으로 컴파일러가 추론해 주기 때문에 타입을 의무적으로 작성하지 않아도 되지만 원한다면 변수: 타입으로 작성할 수 있다.

초기값을 지정해주지 않는 경우?

📍 var

타입을 정의하지 않으면 오류가 난다.

타입을 정의하면 오류는 사라지지만 값을 선언하지 않고 사용하려고 하면 오류가 난다.

📍 val

마찬가지로 값이 선언되어있지 않은 상태에서 타입을 정의해주지 않거나

변수를 사용하려고 하면 오류가 난다.

val 컬렉션에는 element를 추가할 수 있다.

간단한 TIP

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

📌 Kotlin에서의 Primitive Type

자바에서 long은 primitive type / Long은 reference type이다.
코틀린에서는 모두 Long을 사용한다.
-> primitive type과 reference type의 구분이 없다.

Kotlin 공식 문서

숫자, 문자, 불리언과 같은 몇몇 타입은 내부적으로 특별한 표현을 갖는다.
이 타입들은 실행시에 primitive value로 표현되지만, 코드에서는 평범한 클래스처럼 보인다.

Long 타입으로 합쳐져 있지만 만약 연산을 하게 될 경우에는 코틀린이 알아서 똑똑하게 상황에 따라서는 내부적으로 primitive type으로 바꿔서 적절히 처리를 해준다.

📍 코틀린 코드를 자바 코드로 바꿔보기

인텔리제이 Tools > Kotlin > Show Kotlin Bytecode

Decompile 버튼을 누르면 자바 코드로 변경해준다.

long으로 primitive type으로 들어가진 것을 알 수 있다.

💡 즉, 프로그래머가 boxing/ unboxing을 고려하지 않아도 되도록 Kotlin이 알아서 처리 해준다.

📌 Kotlin에서의 nullable 변수

코틀린에서는 자바와 다르게 'null이 들어갈 수 있는'을 다르게 표현한다.

코틀린은 기본적으로 모든 변수를 null이 들어갈 수 없게끔 설계해놓는다.

null이 변수에 들어갈 수 있다면 타입?를 사용해야 한다.

📌 객체 인스턴스화

객체 인스턴스화 할 때에는 자바와 달리 new키워드 없이 객체를 생성해야한다.


📑 출처

  • 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) (인프런/최태현)
profile
나는 말하는 감자다

0개의 댓글