Variables y mutabilidad
Por defecto, las variables en Rust son inmutables, lo que quiere decir que una vez que un valor está vinculado a un nombre, no puede cambiar ese valor. Este es uno de los muchos beneficios que da Rust para escribir código de una manera que se aproveche la seguridad y la fácil concurrencia. Sin embargo, aún tiene la opción de hacer que sus variables sean mutables.
Ejemplo declaración de variables
fn main() { let x = 5; println!("El valor de x es: {}", x); //x = 6; //println!("El valor de x es: {}", x); }
Ejemplo declaración de variables mutables
fn main() { let mut x = 5; println!("El valor de x es: {}", x); x = 6; println!("El valor de x es: {}", x); }
Constantes
Las constantes también son valores que están vinculados a un nombre y no se les permite cambiar, pero hay algunas diferencias entre constantes y variables.
- No se permite usar mut
- Se debe indicar el tipo de dato al momento de declararla
- Se pueden declarar en cualquier ámbito, incluido el ámbito local (alcance)
- Solo pueden declararse formalmente, no como resultado de un valor calculado en timpo de ejecución
const TRES_HORAS_EN_SEGUNDOS: u32 = 60 * 60 * 3;
Shadowing
Este término se refiere a cuando una variable se declara con el mismo nombre de una variable previamente creada.
fn main() { let x = 5; let x = x + 1; { let x = x * 2; println!("El valor de x en el alcance interno es: {}", x); } println!("El valor de x es: {}", x); }
Es importante reconocer la diferencia entre mutabilidad y shadowing, debido a que efectivamente estamos creando una nueva variable cuando usamos let nuevamente, y no sobreescribiendo la variable anterior.