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

Макрос write!

Макрос write! выполняет форматирование строки по заданному шаблону и записывает результат в переданный поток вывода. Первым параметром макрос принимает получателя записи, вторым - строку формата, а далее - значения для подстановки. Макрос возвращает значение типа Result, которое показывает, прошла ли запись успешно.

Синтаксис

write!(writer, "format string", args...)

Пример

Давайте запишем форматированную строку в вектор Vec<u8> с помощью макроса write!:

use std::io::Write; fn main() { let mut buf = Vec::new(); let res = write!(buf, "value: {}", 12345); println!("{:?}", res); println!("{:?}", String::from_utf8(buf).unwrap()); }

Результат выполнения кода:

Ok(()) "value: 12345"

Пример

Давайте запишем строку в буферизованный поток BufWriter и затем выведем содержимое файла:

use std::io::Write; use std::fs::File; use std::io::BufWriter; fn main() { let file = File::create("test.txt").unwrap(); let mut writer = BufWriter::new(file); let res = write!(writer, "abcde {}", 12345); println!("{:?}", res); writer.flush().unwrap(); }

Результат выполнения кода:

Ok(())

Пример

Давайте запишем несколько значений в вектор, используя позиционные аргументы:

use std::io::Write; fn main() { let mut buf = Vec::new(); write!(buf, "{0} {1} {0}", "abcde", 12345).unwrap(); println!("{:?}", String::from_utf8(buf).unwrap()); }

Результат выполнения кода:

"abcde 12345 abcde"

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

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