Rust Basics

Rust Variables, mut, const and Shadowing

Variables in Rust cannot change unless you ask. Learn let, let mut, const and shadowing.

  • Beginner
  • 2 min read
  • 1 runnable example
What you'll learn
  • let and let mut
  • Constants with const
  • Shadowing a variable
Declaration → what it allows
let language = "Rust"cannot change
let mut score = 10can change
const MAX_SCORE: u32 = 100fixed for the whole program
let score = score * 2 → a new variable, 30

Immutable by default

Variables in Rust cannot change unless you say so. let creates a variable, let mut creates one you can change, and const creates a value that is fixed for the whole program.

score is declared with mut, so score += 5 is allowed. The second let score creates a new variable with the same name, which is called shadowing. The braces in println! print the variables named inside them.

Key points

  1. let creates a variable that cannot change.
  2. let mut allows the value to change.
  3. A second let with the same name creates a new variable (shadowing).

Runnable Rust example

Rust
Run code →
main.rs
fn main() {
    let language = "Rust";
    let mut score = 10;
    score += 5;

    const MAX_SCORE: u32 = 100;
    let score = score * 2; // shadowing creates a new variable

    println!("{language}: {score} of {MAX_SCORE}");
}
Get a Run button for this example Result of running the code
Rust: 30 of 100

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Next: Data Types →

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges