Avatar ·

¿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).