Rust mut

fn main() {
    // `let mut var`: mutable binding
    let 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 reference
    let mut s1 = String::from("Hello");
    let r1 = &mut s1;
    r1.push_str(" Welcome!"); // modifying through mutable reference
    println!("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 reference
    println!("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);
}

posted @ 2025-09-16 15:39  ZhengQC  阅读(10)  评论(0)    收藏  举报