РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
751 of 1245 menu

Макрос 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"

Смотрите также

  • макрос write!,
    который записывает строку в поток без перевода строки
  • макрос println!,
    который выводит строку в стандартный поток вывода
  • макрос format!,
    который возвращает форматированную строку
  • типаж Write,
    который предоставляет методы для записи в поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить