📝 간단하게 쓰는 개발일기
함수형 코틀린
책의 3장을 시작했다. 불변성이란 무엇인지, var, val, const val의 차이에 대해 알게 되었다.
정리
- 불변성이란 사전적 정의로 변하지 않는 것을 의미하고, 불변 변수는 말 그대로 변하지 않는 변수이다.
- 불변성을 통해 스레드 안전(thread safe)을 보장할 수 있다.
- Kotlin은 다른 함수형 프로그래밍 언어처럼 불변성이 강제되는 언어는 아니고, 불변성을 권장하는 언어이다.
- var은 다른 프로그래밍 언어의 변수와 같다.
- val은 "읽기 전용" 변수로, 초기화된 이후 수정할 수 없다.
- val이 불변성을 강제하지는 않는다. val을 커스텀 getter와 함께 사용하면 val로 선언되었어도 호출할 때 마다 변경될 수 있다.
- 대신 const val을 사용하면 불변성을 강제할 수 있다. const val은 컴파일 타임 상수로, class나 object의 최상위 멤버여야 한다.
- val은 어떤 타입이든 될 수 있지만, const val은 primitive type과 String만이 가능하다.