# 변수
러스트에서 변수는 기본적으로 불변입니다. 하지만 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 입니다.