행복을 위하여.

[코틀린] kotlin const, val 의 차이 본문

카테고리 없음

[코틀린] kotlin const, val 의 차이

람다lambda 2022. 3. 24. 21:00

코틀린 키워드 val은 값이 변경 불가능한 변수임을 나타낸다. (자바에서는 final 키워드)

그런데 코틀린에서 const키워드도 지원하는 이유는 무엇일까?

컴파일 타임 상수는 반드시 객체나 companion object 선언의 최상위 속성 또는 멤버여야 한다. 컴파일 타임 상수는 문자열 또는 기본 타입의 래퍼 클래스(Byte, Short, Int, Long, Float, Double, Char, Boolean) 이며, 사용자 정의 getter를 가질 수 없다. 

컴파일 타임 상수는 컴파일 시점에 값을 사용할 수 있도록 main함수를 포함한 모든 함수의 바깥쪽에서 할당돼야 한다.

 

코틀린에서 val 은 키워드지만 const는 private, inline등과 같은 변경자임에 유의하자. 

그런 이유로 const가 val 키워드를 대체하는것이 아니라 반드시 같이 쓰여야 한다.

Comments