string-formatting rust

string formatting - ¿Cómo puedo agregar una cadena con formato a una cadena existente?



string-formatting rust (1)

Usando el format! , Puedo crear una String partir de una cadena de formato, pero ¿qué sucede si ya tengo una String que me gustaría agregar? Me gustaría evitar asignar la segunda cadena solo para copiarla y desechar la asignación.

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

Un equivalente cercano en C / C ++ sería snprintf .


Ahora veo que String implements Write , ¡así que solo podemos usar 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 )

¡Es imposible para esto write! llame para devolver un Err , al menos a partir de Rust 1.23, por lo que el unwrap no debe causar preocupación.