Variables y Mutabilidad
En Rust, una variable declarada con let es inmutable por defecto — una vez que le das un valor, no puedes cambiarlo. Esto es deliberado: la mayoría de las variables en un programa bien escrito nunca necesitan cambiar, y que el compilador detecte una reasignación accidental es mucho mejor que descubrirla como un error más tarde.
fn main() {
let x = 5;
println!("x = {}", x);
let mut y = 10;
println!("y = {}", y);
y = 20;
println!("y = {}", y);
}x = 5 y = 10 y = 20
La x de arriba no tiene mut, así que nunca puede ser reasignada — intentarlo sería un error de compilación. y se declara con let mut, lo que explícitamente la hace mutable.
Shadowing
Shadowing te permite declarar una nueva variable con el mismo nombre que una anterior, reemplazándola por completo — esto es diferente de la mutación: cada let spaces crea una variable completamente nueva, y puede incluso cambiar su tipo, algo que la mutación simple nunca podría hacer.
fn main() {
let spaces = " ";
let spaces = spaces.len();
println!("spaces = {}", spaces);
}spaces = 3
Siguiente: tipos básicos — los tipos escalares de Rust, y hasta dónde llega realmente la inferencia de tipos.
Practice Exercise
Declara una variable inmutable price: f64 = 9.99. Luego declara una variable mutable count: i32 = 1, increméntala en 1, e imprime price y count juntos usando println!("{} {}", price, count).