이번 편의 목표: 값에 이름을 붙이고, 한 번 정한 값을 바꿀 때와 바꾸지 않을 때를 구분합니다.

let으로 만든 이름은 기본적으로 다시 대입할 수 없습니다. 다시 대입할 이름에만 mut를 붙입니다. 숫자의 기본 정수 타입은 i32이고, 겹따옴표 문자열 리터럴의 타입은 &str입니다.

Rust
fn main() {
    let days = 3;
    let mut fee = 100;
    fee = days * fee;
    let title = "생각나무";
    println!("{title} {fee}원");
}

days는 3으로 고정됩니다. fee는 100으로 시작한 뒤 days를 곱해 300이 됩니다. 출력은 생각나무 300원입니다. title을 나중에 다른 문자열로 대입하면 컴파일 오류입니다. mut가 없기 때문입니다.

i32는 부호 있는 32비트 정수입니다. 연체 일수와 원 단위 요금은 이 범위로 충분합니다. 소수 요율이 필요하면 f64를 쓰고, 참과 거짓은 bool을 씁니다. 글자 하나는 작은따옴표의 char입니다. 겹따옴표는 문자열입니다.

타입은 값과 사용처에서 추론됩니다. 추론이 모호할 때만 : i32처럼 적습니다. 이름만 다시 쓰고 새 값을 두는 것을 섀도잉이라고 합니다. mut와 달리 이전 값을 고치는 일이 아니라 같은 이름의 새 변수를 만드는 일입니다. 이 연재에서는 값을 고칠 때 mut를 씁니다.

직접 해 보기

days를 5로 바꾸고 출력의 금액이 500원인지 확인하세요.

해설

fee는 100에서 시작하고 days가 5이므로 곱은 500입니다. title은 그대로 생각나무입니다.