From 931eb0894e7cd3717f1218f0eb06382b11734c13 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Sun, 3 Aug 2025 22:29:47 +0200 Subject: vault backup: 2025-08-03 22:29:47 --- Shadowing variables.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Shadowing variables.md (limited to 'Shadowing variables.md') diff --git a/Shadowing variables.md b/Shadowing variables.md new file mode 100644 index 0000000..ce10d66 --- /dev/null +++ b/Shadowing variables.md @@ -0,0 +1,12 @@ +[[Rust]] + +It is basically redeclaring the same variable, but it can be redeclared with a **different type**. A immutable variable can also be shadowed. + +Shadowing is undone when the scope ends, for example in a closure I can shadow a variable from the parent scope, but in the parent scope after the child scope ends we have the original value not the one from the child scope. + +It is useful for reusing a name, ie: +```rust +let spaces = " "; +let spaces = spaces.len(); +``` +> the type of spaces changes from string to u32. -- cgit v1.2.3