* val: 값이 변경되지 않는 경우에 사용(java final과 유사)
* var: 일반적인 변수의 특성과 같음
* const: 상수, 한 번 초기화하면 바꿀 수 없음, 변수 선언할 때 val 앞에 const 를 붙여서 만듦
ex) const val a = "test"
* const val 과 val 차이
- val은 값이 런타임 시에 결정된다.
- 프로그램 수행에 따라 값이 바뀔 수 있음
fun main() {
val num = sum(40, 20)
println(num)
}
fun sum(a: Int, b: Int) = a + b
- const val은 값이 컴파일 시에 결정된다.
- 클래스의 생성자에 할당할 수 없으며, String을 포함한 기본 자료형으로만 선언 가능
- 함수 내 지역 변수나 클래스의 속성으로 사용할 수 없음
- 때문에 const val을 함수나 클래스 내에서 사용하려면 companion object 이하 중괄호 안에 선언해야함
cf)
var, val의 발음을 찾아보려고 유튜브로 찾아본 결과
인도분들이 주로 나왔는데 var[바-], val[벨-] 로 발음을 하는 것으로 보인다.
https://velog.io/@dabin/Kotlin%EB%B3%80%EC%88%98%EC%84%A0%EC%96%B8-val-var
[Kotlin]변수선언 val, var, const/val과 const val의 차이
val(value의 약자) : 선언할 데이터의 값이 변경되지 않을 경우 사용java의 final특성, 선언 이후에 변수의 값을 바꿀 수 없다.var(variable의 약자) : 선언할 데이터의 값이 변경될 수 있을 경우 사용 java
velog.io