106 words
1 minutes
250103_string_append
2025-01-03

link#

Rust Code#

#[derive(Debug)]
struct Young {
    data: String,
}

impl Young {
    fn new() -> Self {
        Self {
            data: "".to_string(),
        }
    }

    // append new text after original
    fn input(&mut self, x: &str) {
        self.data.push_str(x);
    }
}

fn main() {
    let my_da = Young {
        data: "young".to_string(),
    };

    let my_da02 = Young {
        data: "young".to_string(),
    };

    let data = Young::new();

    let mut data2 = my_da02;

    println!("Hello, world! {data:?}");
    println!("Hello, world! {data2:?}");

    data2.input("testtest");

    println!("After input: {data2:?}");
}

Output#

Hello, world! Young { data: "" }
Hello, world! Young { data: "young" }
After input: Young { data: "youngtesttest" }

✅ Why push_str is correct#

  • In Rust
methodmeaning
=replace
+move + concat
push_strappend safely
format!create new string
250103_string_append
https://younghakim7.github.io/blog/posts/250103_string_append/
Author
YoungHa
Published at
2025-01-03