Макрос concat!
Макрос concat принимает произвольное количество
строковых литералов и объединяет их в одну строку
прямо во время компиляции. Параметрами макроса
являются литералы, которые нужно соединить.
Результатом является статическая строка &'static str,
доступная без выделения памяти во время выполнения.
Синтаксис
concat!(literal1, literal2, ...)
Пример
Давайте объединим два строковых литерала
"abcde" и "12345":
fn main()
{
let res = concat!("abcde", "12345");
println!("{}", res);
}
Результат выполнения кода:
"abcde12345"
Пример
Давайте объединим несколько строковых литералов в одну строку:
fn main()
{
let res = concat!("ab", "cd", "ef", "gh");
println!("{}", res);
}
Результат выполнения кода:
"abcdefgh"
Пример
Давайте используем concat вместе с
макросом stringify, чтобы получить
имя переменной в виде строки:
fn main()
{
let my_var = 123;
let res = concat!("name: ", stringify!(my_var));
println!("{}", res);
}
Результат выполнения кода:
"name: my_var"
Смотрите также
-
макрос
format!,
который создаёт строку с форматированием -
макрос
println!,
который выводит отформатированную строку в stdout -
макрос
stringify!,
который превращает выражение в строковый литерал -
макрос
format_args!,
который создаёт аргументы форматирования