使用format!
,我可以从格式字符串中创建String
,但是如果我已经有String
我想要附加到该怎么办?我想避免分配第二个字符串只是为了复制它并丢弃分配。
let s = "hello ".to_string();
append!(s, "{}", 5); // Doesn't exist
C / C ++中的等效近似值为snprintf
。
答案 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);
}
它is impossible for this write!
call to return an Err
,至少从Rust 1.23开始,所以unwrap
不应该引起关注。