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.