Rust

Макроси

Декларативні макроси (macro_rules!), derive макроси, attribute макроси, процедурні макроси, гігієна макросів

20 питань зі співбесід·
Mid-Level
1

Який синтаксис використовується для визначення декларативного макроса в Rust?

Відповідь

Синтаксис macro_rules! використовується для визначення декларативних макросів у Rust. Ця форма метапрограмування використовує pattern matching на синтаксисі Rust для перетворення коду під час компіляції. Декларативні макроси також називають "macros by example", оскільки вони працюють шляхом зіставлення шаблонів і генерування коду на основі цих шаблонів.

2

Як викликати макрос у Rust?

Відповідь

Макроси в Rust викликаються зі знаком оклику після їхнього імені, за яким йдуть аргументи в круглих, квадратних або фігурних дужках. Ця конвенція дозволяє візуально відрізняти виклики макросів від звичайних викликів функцій. Наприклад, println!("Hello") або vec![1, 2, 3] є викликами макросів.

3

Який fragment specifier використовувати для захоплення виразу в декларативному макросі?

Відповідь

Fragment specifier $e:expr захоплює вираз Rust у декларативному макросі. Fragment specifier визначають тип синтаксису, який макрос може приймати. Інші поширені specifier включають ident для ідентифікаторів, ty для типів, tt для token tree та block для блоку коду.

4

Яка основна різниця між декларативними та процедурними макросами?

5

Що таке гігієна макросів у Rust?

+17 питань зі співбесід

Опануй Rust для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно