Kotlin

val, const val

kakaroo 2022. 3. 25. 21:43
반응형

article logo

val

  • 런타임 시 할당
  • val로 선언한 변수는 코틀린에서 프로퍼티로 get() 함수를 가지는 변수
    • 해당 변수를 직접 변경할 수 없지만 get() 함수의 처리 방식에 따라 의도한 값과 다른 값이 나올 수 있음
    • 즉, 항상 초깃값만 반환하지 않음

 

 

const val

const val 는 컴파일 시간에 결정되는 상수이다. 런타임에 할당되는 val 와 달리 컴파일 시간 동안 할당이 되어야 한다.

즉, const 는 함수나 어떤 클래스의 생성자에게도 결코 할당 될 수 없고 오직 문자열이나 기본 자료형으로 할당되어야 한다.

 

때문에 const 로 선언을 하면 클래스의 프로퍼티나 지역변수로 할당 할 수 없게 된다.

때문에 일반적으로 companion object 안에 상수로 선언하게 된다.

class Sample { 
    companion object {
        private const val SAMPLE_SIZE = 5
    }
}

 

아래는 컴파일 에러가 납니다.

반응형