Variables aur Mutability
Rust mein, let se declare kiya gaya variable default tor par immutable hota hai — ek martaba usko value de do, to aap use badal nahi sakte. Yeh jaan boojh kar hai: ek achhe likhe program mein zyadatar variables ko kabhi badalne ki zaroorat nahi hoti, aur compiler ka ek accidental reassignment pakar lena, baad mein use bug ke tor par discover karne se kahin behtar hai.
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
Upar wale x mein mut nahi hai, isliye use kabhi reassign nahi kiya ja sakta — koshish karna ek compile error hoga. y ko let mut se declare kiya gaya hai, jo use explicitly mutable banane ke liye opt karta hai.
Shadowing
Shadowing aapko pichle jaisa hi naam rakh kar ek naya variable declare karne deta hai, jo usko poori tarah replace kar deta hai — yeh mutation se alag hai: har let spaces ek bilkul naya variable banata hai, aur yeh uska type bhi badal sakta hai, jo plain mutation kabhi nahi kar sakta tha.
fn main() {
let spaces = " ";
let spaces = spaces.len();
println!("spaces = {}", spaces);
}spaces = 3
Aage: basic types — Rust ke scalar types, aur type inference waqai kitni door tak jaata hai.
Practice Exercise
Ek immutable variable price: f64 = 9.99 declare karein. Phir ek mutable variable count: i32 = 1 declare karein, use 1 se barhayein, aur price aur count dono ko saath mein print karein println!("{} {}", price, count) istemal kar ke.