Добрый день.
Подскажите, пожалуйста, как передать в макрос значение переменной?
Суть: есть переменная
let a = “abs”;
Есть макрос get_str, который, допустим, просто вставляет пробелы в переданные данные, чтобы получилось “a b s”.
Если вызывается так:
let b = get_str!(“abs”);
то все отрабатывает нормально.
Если же делаем так:
let b = get_str!(a);
то в макросе
let input = parse_macro_input!(item as LitStr);
у нас input получает значение “а”, что абсолютно не то, что хотелось бы.
Есть ли способ передать в процедурный макрос значение переменной, а не её имя?
Добрый день.
Есть ли способ передать в процедурный макрос значение переменной, а не её имя?
Нет, потому что макросы исполняются на этапе компиляции, ещё до того, как у переменных есть какие-либо значения.
В чём состоит задача и почему решили использовать макрос вместо обычной функции?
Так примерно и думал.
Задача - разобраться с макросами)
То есть, просто тренировка.
Для тренировки рекомендую повыполнять проекты из Proc macro workshop, мне кажется это один из лучших способов их изучать.
2 лайка