¿Qué significa la construcción `let x = x;` en Rust y para qué sirve?
¡Hola a todos! Empecé a estudiar Rust y me encontré con una construcción extraña en código ajeno:
```rust
let x = 5;
let x = x;
```
¿Qué es esto? ¿Por qué reasignar una variable a sí misma? ¿Es magia o un bug? Probé ejecutar este código y funciona, pero no entiendo el sentido.
¿Quizás tiene que ver con la mutabilidad? Por ejemplo, vi este código:
```rust
let mut x = 10;
let x = x; // ¿Ahora x es inmutable?
```
¿O es solo una forma de "reiniciar" la variable? Explíquenme, por favor, para principiante. Ya leí sobre el sombreado (shadowing), pero aquí es una forma extraña donde el nombre y el valor coinciden. ¿Tiene algún uso práctico o es solo una escritura redundante?
¡Gracias de antemano!
<<>>
Respuesta breve
La construcción let x = x; en Rust es un caso particular de sombreado (shadowing) de variable. Crea una nueva variable con el mismo nombre, pero con otras propiedades (mutabilidad, tipo, ámbito).