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

Печать структуры для отладки в Rust

Трейт печати для отладки задает, как значение показывают в текстовом виде с именами полей. Без выполнения этого трейта структуру в формате отладки не вывести: компилятор не знает, как собрать строку из полей.

Пометка печати позволяет вывести поля структуры целиком. Компилятор сам допишет выполнение трейта по списку полей, и в программе останется только вызов печати с форматом {:?}:

#[derive(Debug)] struct User { name: String, age: i32, } fn main() { let user = User { name: String::from("ann"), age: 20, }; println!("{:?}", user); }

На экране одна строка с именем типа и значениями полей. Так проще проверять содержимое без ручного вывода каждого поля отдельной командой.

Тот же формат работает и для вложенных значений, если у их типов тоже есть выполнение печати. Добавим второе поле и снова выведем структуру целиком:

#[derive(Debug)] struct Pair { left: i32, right: i32, } fn main() { let pair = Pair { left: 1, right: 2 }; println!("{:?}", pair); }

Дана структура:

struct User { name: String, age: i32, }

Добавьте пометку печати, соберите пользователя с именем "kate" и возрастом 19 и выведите значение форматом {:?}.

Дана структура:

struct Tag { code: i32, label: String, }

Подключите печать для отладки, создайте значение с кодом 7 и подписью "ok" и выведите его одной командой println! с {:?}.

Скажите, какой формат в println! нужен, чтобы напечатать структуру с пометкой печати, и что будет на экране у полей.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить