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

Трейт LowerHex

Трейт LowerHex используется для форматирования значений в шестнадцатеричную строку с символами нижнего регистра (0-9 и a-f). Он лежит в основе заполнителя {:x} и связан с методом fmt, который принимает форматтер и записывает в него представление значения. Реализация этого трейта позволяет использовать тип в макросах форматирования с спецификатором x.

Чаще всего трейт LowerHex используется неявно через макросы println!, format! и другие. Для целочисленных типов он уже реализован стандартной библиотекой. Параметром метода fmt выступает изменяемая ссылка на форматтер, в который записывается результат.

Синтаксис

impl LowerHex for Type { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { // ... } }

Пример

Давайте отформатируем целое число 255 с помощью заполнителя {:x}, который опирается на трейт LowerHex:

fn main() { let res = format!("{:x}", 255); println!("{}", res); }

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

"ff"

Пример

Давайте отформатируем число 26 и выведем результат напрямую через макрос println!:

fn main() { println!("{:x}", 26); }

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

1a

Пример

Давайте реализуем трейт LowerHex для собственной структуры Point и отформатируем её:

use std::fmt; struct Point { x: u8, y: u8, } impl fmt::LowerHex for Point { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:x}:{:x}", self.x, self.y) } } fn main() { let p = Point { x: 255, y: 16 }; let res = format!("{:x}", p); println!("{}", res); }

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

"ff:10"

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

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