
var(variable) - 언제든지 읽쓰가능, Mutable변수
val(value) - 변경안되는거, Assign-once변수, Immutable변수
웬만하면 val로 선하는게 좋다.
변수 선언위치에따라 이름바뀜
변수 초기화
코틀린은 자동 변수 초기화를 지원하지 않으므로 직접 초기화하여야함
val a: Int //error
//다른언어는 저렇게 하면 a는 0으로 저장된다, 하지만 코틀린은 error뜸
코틀린은 기본 변수에서 null은 허용하지않음 (다른 언어들은 변수가 초기화되지 않으면 null처리)
var c : Int? = null (변수에 null을 허용한다, 이렇게하면 null됨)
상수 쓰는 이유
var
계속 초기화가능
val
한번 초기화하면 다음에는 못함
런타임 시에 초기화 되는거임, 런타임에서 한번 값을 할당한 후 변경할 수 없다
할당된 객체를 바꿀수 없을 뿐이지 객체 내부의 속성을 변경할수 없는건 아니다
const val
컴파일 시점에 결정되어 절대 바꿀수 없는 값
클래스 수준이 아닌 최상위 수준에서 사용
런타임에 값을 할당하거나 변경할 수 없다
런타임에 생성되는 거는 못 담음
기본 자료형만 선언 가능함
사용불가
사용가능
즉 var은 런타임시 초기화되며, 값을 변경할 수 없는 변수를 선언할 때 사용되고,
const는 컴파일 타임에 초기화되는 상수를 정의할 때 사용