공부내용정리/안드로이드
코틀린 val과 var의 차이
코딩하는망아치
2021. 8. 11. 21:37
- val
- 변경 불가능한 참조를 저장하는 변수로서 특정한 값을 의미하는 'Value'를 나타낸다.
- val로 선언하면 초기화 이후 '변수의 재 대입'이 불가능하다
- Java에서 'final'키워드로 선언하는 것과 같다 - var
- 변경 가능한 참조이다. 변경 가능하다는 의미의 'Variable'을 나타낸다
- Java의 일반적인 변수에 해당한다.
코틀린이 변수 선언할때 키워드 자체로 변수의 변경 가능성을 구분 짓는 이유
- 프로그래밍에서 대부분의 경우 변수의 값을 변경할 필요가 없고, 변수를 불변으로 하는 경우 여러 면에서 유리하다는 것을 알게 되어서.
- 변수를 사용할때 최초 값 대입 이후로 굳이 값을 변경하지 않는 경우가 많다. 특히 임시적으로 사용되는 지역변수, 함수의 파라미터와 같은 경우 대부분 값을 변경하지 않는다
- 반대로 불변으로 선언할 경우, '메모리,멀티쓰레드 안전성, 함수형 코드'등 얻을수 있는 이점이 많다.
- 따라서 코틀린은 가급적 모든 변수를 'val로 선언하여 불변으로 설정하고, 필요한 경우에만 'var'를 쓰도록 권장하고 있다.