Rust

Makra

Makra deklaratywne (macro_rules!), makra derive, makra atrybutów, makra proceduralne, higiena makr

20 pytań z rozmów·
Mid-Level
1

Jaka składnia jest używana do zdefiniowania makra deklaratywnego w Rust?

Odpowiedź

Składnia macro_rules! służy do definiowania makr deklaratywnych w Rust. Ta forma metaprogramowania wykorzystuje pattern matching na składni Rust, aby przekształcać kod podczas kompilacji. Makra deklaratywne nazywane są również "macros by example", ponieważ działają poprzez dopasowywanie wzorców i generowanie kodu na podstawie tych wzorców.

2

Jak wywołać makro w Rust?

Odpowiedź

Makra w Rust są wywoływane ze znakiem wykrzyknika po ich nazwie, a następnie z argumentami w nawiasach okrągłych, kwadratowych lub klamrowych. Ta konwencja pozwala wizualnie odróżnić wywołania makr od wywołań zwykłych funkcji. Na przykład println!("Hello") lub vec![1, 2, 3] to wywołania makr.

3

Którego fragment specifier użyć do przechwycenia wyrażenia w makrze deklaratywnym?

Odpowiedź

Fragment specifier $e:expr przechwytuje wyrażenie Rust w makrze deklaratywnym. Fragment specifiery definiują typ składni, którą makro może zaakceptować. Inne popularne specifiery to ident dla identyfikatorów, ty dla typów, tt dla token tree i block dla bloku kodu.

4

Jaka jest główna różnica między makrami deklaratywnymi a proceduralnymi?

5

Czym jest higiena makr w Rust?

+17 pytań z rozmów

Opanuj Rust na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo