Rlog

Kotlin 변수 선언 본문

Kotlin

Kotlin 변수 선언

dev_roach 2021. 11. 13. 21:25
728x90

배달의 민족으로 이직하게 되면서 이동하게 되는 팀에서 내년까지 100% 코틀린 마이그레이션이 목표라고 한다.

그래서 코틀린을 공부해야 하는 상황이다.

 

코틀린은 많이 해본적이 없어서 공부하며 나오는 내용들을 정리하려고 한다.

(지금 까지 느낌은 TypeScript 와 무언가 많이 비슷하다..)

 

변수선언

자바에서는 변수를 선언할때 Type 이 가장 앞에 온다.

예를 들면 아래와 같은 코드와 같은 형태일 것 이다.

Person person = new Person

 

위 코드 처럼 자바에서는 Person 이라는 Type 이 가장 앞에오며, person 이라는 변수가 Person Type 임을 알려준다.

하지만 코틀린에서는 Type 이 변수 뒤에 온다.

예를 들면 코틀린에서의 코드는 아래와 같다.

val person: Person = Person();

 

뭐 둘다 앞에 있냐 뒤에 있냐의 차이다. 그렇게 큰 차이는 아니다. 

 

예전에 요즘 언어들이 왜 오른쪽으로 변수 타입을 적는지 궁금해서 알아본적이 있었는데, 어떤 연구결과에 따르면 오른쪽에 두는게 더 사람한테 잘 읽힌다는 연구결과가 있었다는 걸 봤었던것 같다. (어디까지나 제가 본것이기때문에, 틀린 것일 수 있습니다.)

val (value)

val 은 Javascript 의 const 와 같이 변경 불가능한 참조를 저장하는 변수이다. 자바로치면 final 을 생각하면 된다.

그래서 val 인 변수에 대입하려고 하면 아래와 같이 오류가 나게된다.

그래서 변경 불가능한 값에는 val 을 사용해주어야 한다.

var (variable)

var 는 변경 가능한 참조다. 

var 가 붙어있는 변수의 값은 항상 바뀔 수 있다. 

자바에서 final 을 안붙인 일반 변수와 똑같다고 보면 된다.

 

사실 Type 을 오른쪽에 명시를 안해줘도 되는데 나는 TypeScript 를 할때도 왠만해서 명시적으로 지정해주는걸 좋아해서 붙였다.

그러니 안붙이고 싶은 사람들은 안붙여도 된다.

 

코틀린 짧은 후기

오늘 코틀린 변수에 대해 공부해보고 더 공부중인데, 무언가 모던한 느낌이 든다.

'?' 로 nullable 처리또한 그렇고, TypeScript 와 살짝 비슷한거 같아 문법을 익히는데는 빨리 익힐 수 있을 거 같다는 생각이 들었다.

 

'Kotlin' 카테고리의 다른 글

[Mac] Kotlin 설치 및 CLI 에서 사용하기  (0) 2021.12.06
Kotlin Null 처리  (0) 2021.11.18
Kotlin JPA - 상속 관계 맵핑  (0) 2021.11.17
Kotlin JPA  (0) 2021.11.16
Kotlin object  (0) 2021.11.15