Узнайте, как отформатировать строковые данные для идеального представления.

Форматирование строк является важнейшим аспектом программирования, поскольку оно позволяет вам манипулировать данными и отображать их в удобочитаемом и структурированном виде. Вы можете управлять представлением данных, форматируя строки для лучшего взаимодействия с пользователем.

Rust предоставляет мощный и гибкий механизм форматирования строк, который позволяет создавать четкие и краткие выходные данные, включая числовые значения, дату, время и функции обработки ошибок.

Базовое форматирование строк в Rust

Rust предоставляет функциональные возможности для форматирования строк с помощью других Встроенные типы Rust.

Вы можете использовать формат! макрос для базового форматирования строк в Rust. формат! обеспечивает краткий и мощный способ создания форматированных строк с заполнителями, заключенными в фигурные скобки.

фносновной() {
позволять имя = "Алиса";
позволять возраст = 25;
позволять сообщение = формат!(«Меня зовут {}, мне {} лет»., Назовите возраст);
распечатать!("{}", сообщение);
}
instagram viewer

имя переменная содержит строку, а возраст переменная содержит целое число. сообщение переменная имеет форматированную строку, которая использует формат! чтобы заменить заполнители соответствующими значениями, что приведет к строке формата, содержащей имя и возраст.

формат! Макрос поддерживает различные спецификаторы формата, позволяющие управлять выводом.

Вот как указать количество знаков после запятой для чисел с плавающей запятой, определить ширину полей и выровнять вывод.

фносновной() {
позволять пи = 3.14159;
позволять форматированный_пи = формат!("Значение числа пи приблизительно равно {:.2}", Пи);
распечатать!("{}", форматированный_пи); // печатает 3.14
}

Пи переменная содержит значение с плавающей запятой; со спецификатором формата :.2, вы можете проинструктировать формат! макрос для отображения Пи с двумя десятичными знаками.

формат! макрос — один из многих методов форматирования строк в Rust. В зависимости от ваших требований рассмотрите возможность использования распечатать! или писать! макрос для форматированного вывода на консоль или другие потоки вывода.

Форматирование числовых значений

Rust также предоставляет функции для форматирования различных числовых значений, от целых чисел до чисел с плавающей запятой и других числовых типов.

Как правило, спецификаторы формата являются основой форматирования строк в Rust, и вам понадобится правильный спецификатор в зависимости от числового значения, которое вы хотите отформатировать.

Вот некоторые спецификаторы формата, которые Rust предоставляет для числовых значений:

Числовой тип

Форматтер

Функциональность

Целые числа

%d или %i

Форматирует целые числа, включая положительные и отрицательные значения.

Числа с плавающей запятой

%f

Подходит для форматирования чисел с плавающей запятой, включая целые и дробные части.

Экспоненциальное представление

%е или %Е

Форматирует числа в экспоненциальной записи (экспоненциальная форма).

Восьмеричное представление

Форматирует целые числа в восьмеричном представлении (по основанию 8).

Шестнадцатеричное представление

%х или %х

Форматирует целые числа в шестнадцатеричном представлении (с основанием 16).

Кроме того, вы можете указать отступы и выравнивание для числовых значений. Заполнение добавляет пробелы или нули к форматированному числовому значению для достижения желаемой ширины. Заполнение помогает выровнять значения для представления в табличной форме или других визуально организованных макетах. Перед значением ширины можно указать символ заполнения, либо пробел, либо ноль.

Чтобы выровнять значение по левому краю, используйте - флаг. Чтобы выровнять значение по правому краю, опустите флаг или используйте флаг «0» для заполнения нулями.

фносновной() {
число = 42
форматированный_номер = "%10д" % число
печать (formatted_number)
}

Значение выравнивается по правому краю в пределах ширины 10 символов, что приводит к восьми пробелам перед числом.

Пользовательское форматирование строк в Rust

Пользовательское форматирование строк важно для более требовательных операций. Вы можете создавать собственные реализации форматирования для своих типов с помощью встроенного в Rust станд:: фмт модуль.

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

Черта дисплея

Отображать trait помогает производить удобочитаемый вывод, определяя, как объект должен быть отформатирован с помощью {} заполнитель в строке. Вы можете реализовать Отображать черта для вашего пользовательские типы путем определения метода, называемого ФМТ который принимает средство форматирования в качестве аргумента.

Средство форматирования предоставляет различные методы управления выводом формата, такие как write_str и write_fmt методы.

использовать станд:: фмт;

// Определяем структуру с именем `Point`
структураТочка {
Икс: i32,
у: i32,
}

// Реализовать трейт `Display` для `Point`
импл ФМТ:: Дисплей для Точка {
фнФМТ(&себя, ф: &мут fmt:: Formatter<'_>) -> ФМТ::Результат {
// Форматируем структуру Point как "(x, y)"
писать!(ф, "({}, {})", себя.Икс, себя.у)
}
}

фносновной() {
// Создаем новый экземпляр `Point`
позволять точка = точка { х: 5, г: 10 };

// Напечатать структуру Point, используя форматирование Display.
распечатать!("Дело в том: {}", точка);
}

Точка структура реализует Отображать черта. Внутри ФМТ метод, писать! форматы макросов и записать желаемый вывод в средство форматирования с помощью {} заполнитель.

Черта отладки

Отлаживать черта похожа на Отображать черта, за исключением того, что она направлена ​​на создание вывода, подходящего для отладки и обработка ошибок целей. Отлаживать черта в основном используется с {:?} заполнитель.

Реализация Отлаживать Черта на ваших пользовательских типах проста. Отлаживать trait обеспечивает реализацию по умолчанию, основанную на Отображать черта. Однако вы можете переопределить поведение по умолчанию, чтобы обеспечить специализированное представление отладки.

использовать станд:: фмт;

// Определяем структуру с именем `Person`
#[получить (отладить)]
структураЧеловек {
имя: Нить,
возраст: U32,
}

// Реализовать трейт `Display` для `Person`
импл ФМТ:: Дисплей для Человек {
фнФМТ(&себя, ф: &мут fmt:: Formatter) -> fmt::Результат {
// Форматируем структуру Person как удобочитаемую строку
писать!(ф, "Назовите возраст: {}", себя.имя, себя.возраст)
}
}

фносновной() {
// Создаем новый экземпляр `Person`
позволять человек = человек {
имя: Нить::от("Алиса"),
возраст: 30,
};

// Печатаем структуру `Person`, используя форматирование `Display`
распечатать!("Отображать: {}", человек);

// Напечатать структуру Person, используя форматирование Debug.
распечатать!("Отладка: {:?}", человек);
}

Программа выводит Отлаживать черта для Человек структура с #[получить (отладить)]. Это автоматически генерирует реализацию на основе полей структуры.

Макрос println печатает отладочное представление с Отлаживать заполнитель форматирования для форматирования вывода с использованием Отлаживать выполнение.

Rust имеет многофункциональную систему типов

Богатая система типов Rust играет решающую роль в форматировании строк. Используя статическую типизацию Rust и мощные библиотеки форматирования, вы можете писать безопасный и эффективный код, одновременно выполняя задачи по манипулированию строками и форматированию.

Система типов обеспечивает безопасность во время компиляции и предотвращает распространенные ошибки, от несоответствия типов до проблем со спецификаторами формата. Благодаря сочетанию системы типов Rust и ее обширных возможностей форматирования вы можете уверенно справляться с проблемами форматирования строк и извлекать выгоду из производительности и безопасности языка гарантии.