반응형
val
- 런타임 시 할당
- val로 선언한 변수는 코틀린에서 프로퍼티로 get() 함수를 가지는 변수
- 해당 변수를 직접 변경할 수 없지만 get() 함수의 처리 방식에 따라 의도한 값과 다른 값이 나올 수 있음
- 즉, 항상 초깃값만 반환하지 않음
const val
const val 는 컴파일 시간에 결정되는 상수이다. 런타임에 할당되는 val 와 달리 컴파일 시간 동안 할당이 되어야 한다.
즉, const 는 함수나 어떤 클래스의 생성자에게도 결코 할당 될 수 없고 오직 문자열이나 기본 자료형으로 할당되어야 한다.
때문에 const 로 선언을 하면 클래스의 프로퍼티나 지역변수로 할당 할 수 없게 된다.
때문에 일반적으로 companion object 안에 상수로 선언하게 된다.
class Sample {
companion object {
private const val SAMPLE_SIZE = 5
}
}
아래는 컴파일 에러가 납니다.
반응형
'Kotlin' 카테고리의 다른 글
Scope 함수(범위 지정 함수 - apply, with, let, also, run) (0) | 2022.03.26 |
---|---|
backing field <custom getter(), setter() 설정> (0) | 2022.03.26 |
람다, 고차함수, 함수합성, 클로저 (0) | 2022.03.25 |
NewsFeed - JSoup / Nested RecyclerView (0) | 2022.03.16 |
3. Android - Location post service (feat. Alarm) (0) | 2022.03.01 |