Трейт std::fmt::Write
Трейт std::fmt::Write определяет интерфейс для записи
форматированного текста в буфер или поток вывода. Он широко
используется совместно с макросами write! и
writeln! для записи данных в строки, файлы и другие
устройства вывода. Основным методом трейта является
write_str, который принимает строковый срез и записывает
его в целевой буфер, возвращая результат типа fmt::Result.
Помимо этого, трейт предоставляет методы write_char
и write_fmt для записи одиночного символа и
форматированной строки соответственно.
Синтаксис
use std::fmt::Write;
fn write_str(&mut self, s: &str) -> fmt::Result;
fn write_char(&mut self, c: char) -> fmt::Result;
fn write_fmt(&mut self, args: Arguments) -> fmt::Result;
Пример
Давайте запишем форматированную строку в объект String
с помощью макроса write!:
use std::fmt::Write;
fn main()
{
let mut res = String::new();
write!(res, "abcde {}", 12345).unwrap();
println!("{}", res);
}
Результат выполнения кода:
"abcde 12345"
Пример
Давайте воспользуемся методом write_str напрямую,
чтобы добавить строку в буфер:
use std::fmt::Write;
fn main()
{
let mut res = String::new();
res.write_str("abcde").unwrap();
res.write_str("12345").unwrap();
println!("{}", res);
}
Результат выполнения кода:
"abcde12345"
Пример
Давайте запишем одиночный символ с помощью метода
write_char:
use std::fmt::Write;
fn main()
{
let mut res = String::new();
res.write_char('a').unwrap();
res.write_char('b').unwrap();
res.write_char('c').unwrap();
println!("{}", res);
}
Результат выполнения кода:
"abc"