如何在 Rust 中将字符串压入字符串?

San*_*jay 6 string-concatenation rust

fn main() {
    let mut str = "string".to_string();

    // How do I push String to String?
    str.push_str(format!("{}", "new_string"));
}
Run Code Online (Sandbox Code Playgroud)

那么,如何将格式化的字符串推入呢str?我不想串联。连接与推送有点相同,但我想知道如何推送String

Sve*_*rev 9

你不能String直接推送,但你可以推送一个字符串切片 - 即 - &str。因此,您必须从您的 中获取一部分String,这可以通过多种方式完成:

因此,获取格式化字符串的引用就足以推送它:

fn main() {
  let mut str = "string".to_string();
  str.push_str(&format!("{}", "new_string"));
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在这种特定情况下,`str.push_str ("new_string")`避免了多余的分配和复制。如果格式字符串更复杂, write!(&mut str, "{}", 42)` 也可以避免额外的分配和复制。 (3认同)