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

Трейт Write

Трейт Write определяет методы для записи байтов и форматированных строк в источник вывода. Он является основой для таких типов, как stdout, File, String и других. Основной метод write_fmt принимает объект Arguments, который создаётся макросами форматирования, например format_args!. Также трейт предоставляет методы write, write_all и flush для работы с байтовыми данными и синхронизации вывода.

Синтаксис

use std::fmt::Write; writer.write_fmt(format_args!("..."))?; writer.write(b"...")?; writer.write_all(b"...")?; writer.flush()?;

Пример

Давайте запишем форматированную строку в String с помощью трейта Write:

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

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

"value = 12345"

Пример

Давайте запишем несколько форматированных строк в String последовательно:

use std::fmt::Write; fn main() { let mut res = String::new(); write!(res, "abcde").unwrap(); write!(res, " ").unwrap(); write!(res, "12345").unwrap(); println!("{}", res); }

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

"abcde 12345"

Пример

Давайте используем метод write_fmt напрямую с макросом format_args!:

use std::fmt::Write; fn main() { let mut res = String::new(); res.write_fmt(format_args!("{} + {} = {}", 2, 3, 5)).unwrap(); println!("{}", res); }

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

"2 + 3 = 5"

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

  • макрос write!,
    который записывает форматированную строку в writer
  • макрос writeln!,
    который записывает строку с переводом строки
  • метод flush,
    который сбрасывает буферизованный вывод
  • метод write_all,
    который записывает все байты в writer
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить