binding

let, let mut, const는 변경 가능성과 결정 시점이 다르다

값 이름을 붙이는 문법은 비슷하지만, 변경 가능성, 타입 명시, 런타임/컴파일 시점 기준이 다르다.

let기본 불변 바인딩

shadowing 가능

let mut런타임 변경 가능

같은 타입 안에서 수정

const항상 불변 상수

타입과 값 명시

구분의미판단
값 변경let mut만 가능let은 새 바인딩으로 shadow
타입 명시const는 필수let은 대개 추론
범위const는 전역/지역 가능컴파일 시 계산 가능해야 함

핵심 선택 기준은 값이 나중에 바뀌는지와 그 값이 컴파일 시점에 고정될 수 있는지다.