Макрос format_args!
Макрос format_args! создаёт значение типа
std::fmt::Arguments, содержащее ссылку на строку
формата и ссылки на аргументы. Это значение можно
передавать в функции, принимающие Arguments,
например в println, write или
format. Параметрами макрос принимает строку
формата с плейсхолдерами и значения, которые нужно
подставить вместо этих плейсхолдеров. Основное
преимущество макроса в том, что он не выполняет
выделение памяти в куче - аргументы хранятся на стеке.
Синтаксис
format_args!("строка формата", аргумент1, аргумент2, ...)
Пример
Давайте создадим аргументы форматирования и передадим
их в функцию println:
fn main()
{
let name = "abcde";
let args = format_args!("value: {}", name);
println!("{}", args);
}
Результат выполнения кода:
value: abcde
Пример
Давайте передадим аргументы форматирования в функцию
format для получения строки:
fn main()
{
let n = 12345;
let s = format!("{}", format_args!("number: {}", n));
println!("{}", s);
}
Результат выполнения кода:
"number: 12345"
Пример
Давайте используем несколько плейсхолдеров с разными типами данных:
fn main()
{
let args = format_args!("{} + {} = {}", 2, 3, 5);
println!("{}", args);
}
Результат выполнения кода:
2 + 3 = 5