Макрос writeln!
Макрос writeln! записывает форматированную строку
в указанный поток и автоматически добавляет
в конец символ перевода строки \n. Первым
параметром макрос принимает поток, в который
нужно записать данные. Вторым параметром
идёт строка форматирования, а далее - значения,
которые нужно подставить в эту строку. Макрос
возвращает Result, поэтому его результат
нужно обрабатывать через unwrap
или оператор ?.
Синтаксис
writeln!(writer, "format string", args...)
Пример
Давайте запишем строку в вектор байтов
Vec с помощью макроса writeln!:
use std::io::Write;
fn main()
{
let mut buf = Vec::new();
writeln!(buf, "hello").unwrap();
println!("{:?}", String::from_utf8(buf).unwrap());
}
Результат выполнения кода:
"hello\n"
Пример
Давайте подставим значения в строку форматирования и запишем результат в вектор байтов:
use std::io::Write;
fn main()
{
let mut buf = Vec::new();
let a = 5;
let b = 10;
writeln!(buf, "{} + {} = {}", a, b, a + b).unwrap();
println!("{:?}", String::from_utf8(buf).unwrap());
}
Результат выполнения кода:
"5 + 10 = 15\n"
Пример
Давайте запишем несколько строк в вектор байтов подряд:
use std::io::Write;
fn main()
{
let mut buf = Vec::new();
writeln!(buf, "abcde").unwrap();
writeln!(buf, "12345").unwrap();
println!("{:?}", String::from_utf8(buf).unwrap());
}
Результат выполнения кода:
"abcde\n12345\n"