반응형
목차
- let
- let mut
- const
- const vs let
- Shadowing
- 참고
let
기본적인 variable의 let을 한번 살펴볼까요?
fn main() {
let x = 10;
println!("The value x is: {}", x);
x = 20; // ⭐️ 에러!
println!("The value x is: {}", x);
}
네 rust는 기본적으로 immutalbe을 지향하기 떄문에 에러가 나게 됩니다. 응? const도 있고 let도 있는데 그럼 어떻게...?
let mut
mutable을 지원하기 위해 mut 키워드를 붙여주면 됩니다.
fn main() {
let mut x = 10;
println!("The value x is: {}", x);
x = 20;
println!("The value x is: {}", x);
}
const
그럼 한번 const를 알아볼까요? const는 이름에서 유추할수 있다 싶이 constant를 선언하게 됩니다.
fn main() {
const temp: i32 = 1000;
println!("The value temp is: {}", temp);
}
그렇다면 도대체 let과 const의 차이점은 무엇일까요?
const vs let
눈치채신분도 있겠지만 let과 const의 차이는 data type을 붙여주느냐 아니냐의 차이입니다.
또한 mut 키워드를 붙일 수 없습니다.
Shadow
Shadow란 전에 사용했던 똑같은 변수를 또 사용할 수 있습니다.
fn main() {
let x = 5;
let x = x + 1;
{
let x = x * 2;
println!("Inner: {}", x); // 12
}
println!("Outer: {}", x); // 6
}
와 정말 신기하네요. 그럼 다른 예제를 볼까요?
let spaces = " ";
let spaces = spaces.len();
println!("Spaces: {}", spaces); // 3
그럼 만약에 mut 키워드를 붙이면 어떻게 될까요?
let mut spaces = " ";
spaces = spaces.len(); // 🚨 error!
println!("Spaces: {}", spaces); // 3
왜 에러가 날까요? variable type이 바뀌었기 때문입니다.
참고
반응형
'Rust' 카테고리의 다른 글
Hello World (0) | 2022.01.31 |
---|