# Macro's (Rust) > Declaratieve macro's (macro_rules!), derive macro's, attribute macro's, procedurele macro's, macro-hygiëne - 20 gespreksvragen - Mid-Level - [Gespreksvragen: Rust](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen.md) ## 1. Welke syntaxis wordt gebruikt om een declaratieve macro in Rust te definiëren? **Antwoord** De macro_rules!-syntaxis wordt gebruikt om declaratieve macro's in Rust te definiëren. Deze vorm van metaprogrammering gebruikt pattern matching op de Rust-syntaxis om code tijdens het compileren te transformeren. Declaratieve macro's worden ook "macros by example" genoemd omdat ze werken door patronen te matchen en code te produceren op basis van die patronen. ## 2. Hoe roep je een macro aan in Rust? **Antwoord** Macro's in Rust worden aangeroepen met een uitroepteken na hun naam, gevolgd door argumenten tussen ronde, vierkante of accoladehaken. Deze conventie maakt het mogelijk macro-aanroepen visueel te onderscheiden van normale functieaanroepen. Bijvoorbeeld println!("Hello") of vec![1, 2, 3] zijn macro-aanroepen. ## 3. Welke fragment specifier gebruik je om een expressie in een declaratieve macro vast te leggen? **Antwoord** De fragment specifier $e:expr legt een Rust-expressie vast in een declaratieve macro. Fragment specifiers definiëren het type syntaxis dat de macro kan accepteren. Andere veelvoorkomende specifiers zijn ident voor identifiers, ty voor types, tt voor een token tree en block voor een codeblok. ## Nog 17 vragen beschikbaar - Wat is het belangrijkste verschil tussen declaratieve en procedurele macro's? - Wat is macro-hygiëne in Rust? Meld je gratis aan: https://sharpskill.dev/nl/login ## Andere Rust-sollicitatieonderwerpen - [Rust-basis](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/rust-basics.md): 25 vragen, Junior - [Ownership & Borrowing](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/ownership-borrowing.md): 22 vragen, Junior - [Structs & Enums](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/structs-enums.md): 20 vragen, Junior - [Foutafhandeling](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/error-handling.md): 18 vragen, Junior - [Collecties](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/collections.md): 20 vragen, Junior - [Modules & Packages](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/modules-packages.md): 18 vragen, Junior - [Traits](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/traits.md): 22 vragen, Mid-Level - [Generics](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/generics.md): 20 vragen, Mid-Level - [Lifetimes](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/lifetimes.md): 20 vragen, Mid-Level - [Iterators & Closures](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/iterators-closures.md): 22 vragen, Mid-Level - [Smart Pointers](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/smart-pointers.md): 22 vragen, Mid-Level - [Concurrency Basics](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/concurrency-basics.md): 20 vragen, Mid-Level - [async/await](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/async-await.md): 22 vragen, Mid-Level - [Testing](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/testing.md): 18 vragen, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/cargo-ecosystem.md): 18 vragen, Mid-Level - [Pattern Matching](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/pattern-matching.md): 18 vragen, Mid-Level - [Serde & serialisatie](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/serde-serialization.md): 20 vragen, Mid-Level - [Unsafe Rust](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/unsafe-rust.md): 20 vragen, Senior - [Geavanceerde traits](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/advanced-traits.md): 22 vragen, Senior - [Geavanceerde Lifetimes](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/advanced-lifetimes.md): 20 vragen, Senior - [Type System](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/type-system.md): 20 vragen, Senior - [Tokio & Async I/O](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/tokio-async.md): 22 vragen, Senior - [Prestatie-optimalisatie](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/performance-optimization.md): 20 vragen, Senior - [Memory Management](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/memory-management.md): 20 vragen, Senior - [Web Frameworks](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/web-frameworks.md): 22 vragen, Senior - [Database Integration](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/database-integration.md): 20 vragen, Senior - [Rust Design Patterns](https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/design-patterns.md): 20 vragen, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/nl/technologies/rust/sollicitatievragen/macros