RustBrock/Variables.md

32 lines
769 B
Markdown

# Variables
- Are Immutable by default
- can be inferred but sometimes needs explicit typing
```rust
let foo = 5;
```
- Need to add mut keyword to enable rewriting, generally avoid unless actually used
```rust
let mut bar = 6;
```
# SHADOWING
#### Cannot have mutable shadows
allows for reuse of namespace instead of spaces_str and spaces_num
```rust
let spaces = " _ _ ";
let spaces = spaces.len();
// will output 5 instead of " _ _ " beacuse that is how long it is
// the shadow of spaces (first) wont be printed until the overshadow of spaces goes out of scope
println!("{spaces}"); // output: 5
```
not allowed shadow
```rust
let mut spaces = " _ _ ";
spaces = spaces.len();
```
cannot change type of variable once declared