Можно же как-то менять строчку без повторного выделения памяти?
А то не очень-то красиво у меня выходит, что на каждой итерации новая строка выделяться будет:
for i in 0..N { f(&format!("directional_lights[{}].direction",i)); }
Можно же как-то менять строчку без повторного выделения памяти?
А то не очень-то красиво у меня выходит, что на каждой итерации новая строка выделяться будет:
for i in 0..N { f(&format!("directional_lights[{}].direction",i)); }
Наверно будет логично скопировать сюда, чтоб вопрос не висел
use std::fmt::Write;
fn main () {
let mut buf = String::new();
write!(buf, "test [{}]", 123).unwrap();
println!("{}", buf); // test [123]
}
Спасибо
Добавлю, что для сброса старого значения .clear()
есть:
use std::fmt::Write;
fn f (s: &str) {
println!("{}", s);
}
fn main() {
let mut s = String::new();
for i in 0..10 {
s.clear();
write!(&mut s, "test[{}]", i).unwrap();
f(&s);
}
}
https://play.rust-lang.org/?gist=870977cac22243a3308d397b713b203d