[코틀린] 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의 차이
반응형
'바삭바삭 IT > 코틀린' 카테고리의 다른 글
[코틀린] 범위 지정 함수 let(), apply(), with(), run(), also() (0) | 2021.09.03 |
---|---|
[코틀린] 함수 호출시, 인자에 함수 대입하기 (0) | 2020.12.09 |