immutable

    Kotlin의 val은 왜 엄밀한 의미의 불변 변수가 아닌가?

    Kotlin에서는 var을 읽기와 쓰기가 모두 가능한 가변 변수로 val을 읽기만 가능하면 불변 변수로 정의한다. 하지만, 실제로는 var은 물론 val 또한 엄밀한 의미의 불변이 아니다. 지금부터 이유를 알아보도록 하자. 변수에 값을 할당하는 것은 정확히 말하면 메모리 공간을 할당하는 것이다. 다음의 코드를 예시로 들어보자. val blogName = "Kotlin World" var date = "2021-10-02" 위의 코드를 실행하면 blogName이라는 변수값이 정해지고 해당 변수값을 참조했을 때 "Kotlin World"가 저장된 메모리 공간을 반환한다. date라는 변수값은 "2021-10-02"가 저장된 메모리 공간을 반환한다. var date = "2021-10-02" date = "2..