如何将格式化字符串附加到现有String?

时间:2015-02-04 23:32:48

标签: string-formatting rust

使用format!,我可以从格式字符串中创建String,但是如果我已经有String我想要附加到该怎么办?我想避免分配第二个字符串只是为了复制它并丢弃分配。

let s = "hello ".to_string();
append!(s, "{}", 5); // Doesn't exist

C / C ++中的等效近似值为snprintf

1 个答案:

答案 0 :(得分:21)

我现在看到String implements Write,所以我们可以使用write!

use std::fmt::Write;

pub fn main() {
    let mut a = "hello ".to_string();
    write!(&mut a, "{}", 5).unwrap();

    println!("{}", a);
    assert_eq!("hello 5", a);
}

Playground

is impossible for this write! call to return an Err,至少从Rust 1.23开始,所以unwrap不应该引起关注。