[코틀린] var과 val의 차이

2021. 9. 19. 15:15바삭바삭 IT/코틀린

코틀린에서는 자바와 다르게 특정 타입을 명시하지 않고 변수를 선언합니다.

String name = "홍길동";	//자바

val name = "홍길동"	//코틀린

그런데 위처럼 val이라고 선언한것도 있고 간혹가다 var이라고 표시한것도 있죠. 오늘은 이 val과 var의 차이를 공부해 보려 합니다.

 

변수를 선언하는 두 키워드

val - val은 value의 줄임말로 immutable reference며 val로 선언된 변수는 나중에 재할당 될 수 없습니다. 마치 자바의 final과 같은 기능입니다.

var - var은 variable의 줄임말로 mutable reference며 var로 선언된 변수는 변경될 수 있습니다. final이 아닌(non-final)인 자바의 변수들이랑 같습니다.

 

val은 위에서 말했듯이 immutable이지만 참조하는 객체는 mutable일 수 있습니다. 따라서 아래같은 구문이 잘 작동됩니다.

val langs = arrayListOf("java")
langs.add("kotlin")

var보다는 val을 써라

기본적으로 var보다는 val을 쓰는것이 좋다고 합니다. 특별히 필요한 경우에만 var을 쓰라고 하는데요.

immutable reference, immutable object가 코드를 더 함수형 스타일로 만들어주기 때문이라고 합니다.

 

reference와 object의 차이점은 아래글을 참고하세요 :) 

2021.09.19 - [바삭바삭 IT/자바] - [자바] Reference와 Object의 차이

 

 

반응형