Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
757 of 1246 menu
◀ ▶

Плейсхолдер {:?

}

Плейсхолдер {:?} применяется в макросах форматирования, таких как println!, format! и других, для вывода значений в отладочном формате. Он требует, чтобы тип значения реализовывал типаж Debug. В отличие от плейсхолдера {}, который использует типаж Display и предназначен для пользовательского вывода, {:?} показывает внутреннее представление значения, удобное для отладки. Параметром плейсхолдер принимает значение, которое нужно вывести в отладочном формате.

Синтаксис

println!("{:?}", value);

Пример

Давайте выведем строку "abcde" в отладочном формате:

fn main() { let res = "abcde"; println!("{:?}", res); }

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

"abcde"

Обратите внимание, что в отличие от плейсхолдера {}, плейсхолдер {:?} выводит строку вместе с кавычками.

Пример

Давайте выведем вектор чисел в отладочном формате:

fn main() { let res = vec![1, 2, 3, 4, 5]; println!("{:?}", res); }

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

[1, 2, 3, 4, 5]

Пример

Давайте выведем кортеж в отладочном формате:

fn main() { let res = (1, "abcde", 2.5); println!("{:?}", res); }

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

(1, "abcde", 2.5)

Пример

Давайте выведем структуру в отладочном формате. Для этого необходимо добавить атрибут #[derive(Debug)]:

#[derive(Debug)] struct Point { x: i32, y: i32, } fn main() { let res = Point { x: 1, y: 2 }; println!("{:?}", res); }

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

Point { x: 1, y: 2 }

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

  • плейсхолдер {},
    который выводит значение с помощью типажа Display
  • плейсхолдер {:#?},
    который выводит значение в красиво отформатированном виде
  • типаж Debug,
    который обеспечивает отладочный вывод значений
  • макрос format!,
    который создаёт строку с помощью форматирования
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить