fn main() {// `let mut var`: mutable bindinglet mut i = 5;i = 6; // 整体替换println!("i: i32= {}", i);let mut s = String::from("Hi");s = String::from("Hello"); // 整体替换s.push_str(" World!"); // 部分修改println!("s: String= {}", s);// `&mut T`: mutable referencelet mut s1 = String::from("Hello");let r1 = &mut s1;r1.push_str(" Welcome!"); // modifying through mutable referenceprintln!("s1: String={}", s1);// r1 = &mut s; // error: cannot assign twice to immutable variable `r1`let mut r2 = &mut s1;r2.push_str(" Have a great day!"); // modifying through mutable referenceprintln!("s1: String={}", s1);let mut s2 = String::from("Test");r2 = &mut s2; // `r2` is resigned to reference `s2`*r2 = String::from("Goodbye!"); // equivalent to `s2 = String::from("Goodbye!")`println!("s2: String={}", s2);
}