변수에 값을 넣으면 c 처럼 값이 변경되지 않아
let을 이용 재귀적으로 다시 할당을 하거나 mut 키워드로 변경이 가능한 변수로 지정해야 한다.
fn main() { let x = 5; println!("The value of x is: {x}"); x = 6; println!("The value of x is: {x}"); } $ cargo run Compiling variables v0.1.0 (file:///projects/variables) error[E0384]: cannot assign twice to immutable variable `x` --> src/main.rs:4:5 | 2 | let x = 5; | - | | | first assignment to `x` | help: consider making this binding mutable: `mut x` 3 | println!("The value of x is: {x}"); 4 | x = 6; | ^^^^^ cannot assign twice to immutable variable For more information about this error, try `rustc --explain E0384`. error: could not compile `variables` due to previous error |
좀 더 아래 shadowing 에 있는 예제인데
let x = 5;
let x = x + 1; 을 이용해서 자기 자신에게 새로운 값을 소유하게 하는 것은 인정 되는 듯
fn main() { let x = 5; let x = x + 1; { let x = x * 2; println!("The value of x in the inner scope is: {x}"); } println!("The value of x is: {x}"); } |
아무튼 언어 설계상 정석은 mut 키워드를 쓰는 것으로 보인다.
fn main() { let mut x = 5; println!("The value of x is: {x}"); x = 6; println!("The value of x is: {x}"); } |
[링크 : https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html]
'Programming > rust' 카테고리의 다른 글
rust mut 외 몇가지 컴파일 에러들 (0) | 2023.05.26 |
---|---|
rust visibility and privacy (0) | 2023.05.25 |
rust 소유권 (0) | 2023.05.25 |
rust was (0) | 2023.05.20 |
c에서 rust 호출하기 (0) | 2023.05.11 |