-
[Kotlin] const와 val의 차이📖 개발 공부/kotlin 2023. 4. 1. 11:20
언제든 값을 바꿀 수 있는 var과 초기화하면 값을 바꿀 수 없는 val의 2가지 선언 방법이 존재한다.
또한 상수를 선언할 수 있는 const val 라는 선언이 존재한다.
그렇다면 값을 바꿀 수 없는 val 와 상수를 선언하는 const val 의 차이점은 무엇일까?
바로 "불변성"에 관련한 차이점이다.
val 은 값이 런타임 시에 결정되는 상수인데, 이는 독립적인 동일한 프로그램 수행 중에 프로그램 수행에 따라 값이 바뀔 수 있음을 의미한다.
예를 들어 두 숫자를 더한 값을 반환하는 함수를 사용해서 val 값을 정한다고 했을 때, 이 값은 함수의 parameter로 들어가는 숫자에 따라 언제든지 달라질 수 있다. 때문에 val 값은 불완전한 불변성을 가지고 있는 것이다.
const val 은 값이 컴파일 시에 결정되는 상수로, val과는 다른 불변성을 가지고 있다.
이렇게 선언된 const val은 함수나 클래스의 상태에 상관없이 언제나 동일한 값을 가지고 있다. 때문에 특정한 고정된 값을 사용하고 싶을 때, 이런 const val을 사용하면 된다.
이런 const val은 함수 내의 지역변수나, 클래스의 속성으로 사용할 수 없다.
때문에 const val을 함수나 클래스 내에서 사용하려면 companion object 중괄호 안에 선언해주어야 한다.
반응형'📖 개발 공부 > kotlin' 카테고리의 다른 글
도메인 모델에 kotlin의 data class가 적합할까? (0) 2023.12.10 [Kotlin] @Synchronized 어노테이션 동작 방식 (0) 2023.08.03 [Kotlin] toBoolean(), toBooleanStrict() (0) 2023.07.26 [Kotlin] sortedBy와 sortedWith의 차이점 (0) 2023.04.09 [Kotlin] 범위 지정 함수 apply, let, run, also, with (1) 2023.04.08