Skip to content

Latest commit

 

History

History
51 lines (38 loc) · 950 Bytes

shadowing.md

File metadata and controls

51 lines (38 loc) · 950 Bytes

Shadowing

Rust allows developers to re-use a name of a variable. For example:

let x = 1;
let x = 2;

In the example, symbol x is used for declaring a variable and then it is re-used for declaring another variable. This type of variable declaration is called shadowing.

Shadowing is useful when we have nested scopes.

let x = 1;
let y = 2;
{
    let x = 3;
    println!("x = {}", x);
    println!("y = {}", y);
}
println!("x = {}", x);
println!("y = {}", y);

Output:

x = 3
y = 2
x = 1
y = 2

{} opens a new scope. We can re-use a variable name in the inner scope while leaving the variable in the outer scope unchanged.

Another reason to use shadowing is to change the type of a variable.

let x = "one";
let x = 1;

This is helpful when the program becomes complicated.

📘 Back: Table of contents