# 변수

러스트에서 변수는 기본적으로 불변입니다. 하지만 mut 키워드로 가변 변수를 선언할 수도 있습니다.

불변 변수는 한번 값이 할당되면 값을 바꿀 수 없습니다. 아래의 코드를 실행시켜 봅시다.

fn main() {
    let a = 1;
    println!("a의 값은 {} 입니다.", a);
    a = 2;
    println!("a의 값은 {} 입니다.", a);
}
error[E0384]: cannot assign twice to immutable variable `a`
 --> src/변수/main.rs:4:5
  |
2 |     let a = 1;
  |         -
  |         |
  |         first assignment to `a`
  |         help: make this binding mutable: `mut a`
3 |     println!("a의 값은 {} 입니다.", a);
4 |     a = 2;
  |     ^^^^^ cannot assign twice to immutable variable

컴파일러가 불변 변수인 a에 값을 두 번 할당할 수 없다고 알려줍니다. 우리는 두 번째 줄에서 a에 처음 값을 할당했고, 네 번째 줄에서 다시 값을 할당했습니다. 컴파일러는 이 문제를 해결하기 위해 가변 변수로 선언하라는 조언을 하고 있습니다.

조언에 따라 코드를 고치고 다시 실행시켜 봅시다.

fn main() {
    let mut a = 1;
    println!("a의 값은 {} 입니다.", a);
    a = 2;
    println!("a의 값은 {} 입니다.", a);
}
$ cargo run
   Compiling 변수 v0.1.0 (/Users/yujingaya/Developer/변수)
    Finished dev [unoptimized + debuginfo] target(s) in 0.28s
     Running `target/debug/변수`
a의 값은 1 입니다.
a의 값은 2 입니다.

# 변수와 상수

마지막 수정: 12/12/2020, 12:58:03 AM