Как я могу реализовать сложные макросы типа `format_args!` В пространстве пользователя? - PullRequest
0 голосов
/ 18 мая 2019

Мне нравится, что Rust поставляется с большим количеством макросов, которые перемещают вычисления во время компиляции, а не повторяем во время выполнения.

print! и все его варианты с использованием format_args! См. Исходный код являются отличными примерами.

К сожалению, в исходном коде вы видите комментарий /* compiler built-in */ вместо прямой реализации в исходном файле.

Может ли Rust позволить пользователю писать такую ​​сложную логику, как макрос? Если да, то как я могу это сделать?

1 Ответ

1 голос
/ 18 мая 2019

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

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

На YouTube есть несколько выступлений по этому поводу, но вы можете найти следующие, в частности, очень интересные, которые были сделаны Крисом Вонгом на RustConf 2018, My Little Procedural Macro:

youtube

...