바인딩 결정

값의 변경 의도를 먼저 묻는다

Rust 선언은 값을 저장하는 문법이면서, 이 값이 바뀔 수 있는지와 어떤 단계에서 새 이름이 되는지를 드러내는 표식이다.

01

프로그램 전역 고정값인가

const MAX: u32 = 100;

타입과 값이 컴파일 시점에 고정되면 상수로 둔다.

02

같은 이름의 변환 단계인가

let spaces = spaces.len();

문자열을 길이로 바꾸듯 새 바인딩이면 섀도잉을 쓴다.

03

재대입이 필요한가

let mut count = 0;

같은 바인딩의 값이 바뀌어야 할 때만 mut을 붙인다.

04

그 밖의 값인가

let name = "Ferris";

기본은 불변 let이다. 바뀌지 않는다는 사실이 기본 정보다.

컴파일러가 막는 것

불변 let에 다시 대입하면 의도하지 않은 변경으로 보고 막는다.

mut이 알려 주는 것

값이 변하는 지점을 코드 리뷰에서 바로 추적할 수 있다.

섀도잉이 남기는 것

이전 값을 바꾸는 대신 새 단계의 값을 같은 이름으로 다시 묶는다.