
Macros
Declarative macros (macro_rules!), derive macros, attribute macros, procedural macros, macro hygiene
1Quelle est la syntaxe utilisée pour définir une macro déclarative en Rust ?
Quelle est la syntaxe utilisée pour définir une macro déclarative en Rust ?
Réponse
La syntaxe macro_rules! permet de définir des macros déclaratives en Rust. Cette forme de métaprogrammation utilise le pattern matching sur la syntaxe Rust pour transformer du code à la compilation. Les macros déclaratives sont aussi appelées "macros by example" car elles fonctionnent en matchant des patterns et en produisant du code basé sur ces patterns.
2Comment invoquer une macro en Rust ?
Comment invoquer une macro en Rust ?
Réponse
Les macros en Rust sont invoquées avec un point d'exclamation après leur nom, suivi des arguments entre parenthèses, crochets ou accolades. Cette convention permet de distinguer visuellement les appels de macros des appels de fonctions normaux. Par exemple, println!("Hello") ou vec![1, 2, 3] sont des invocations de macros.
3Quel fragment specifier utiliser pour capturer une expression dans une macro déclarative ?
Quel fragment specifier utiliser pour capturer une expression dans une macro déclarative ?
Réponse
Le fragment specifier $e:expr capture une expression Rust dans une macro déclarative. Les fragment specifiers définissent le type de syntaxe que la macro peut accepter. D'autres specifiers courants incluent ident pour les identifiants, ty pour les types, tt pour un token tree, et block pour un bloc de code.
Quelle est la différence principale entre les macros déclaratives et procédurales ?
Qu'est-ce que l'hygiène des macros en Rust ?
+17 questions d'entretien
Autres sujets d'entretien Rust
Les bases de Rust
Ownership & Borrowing
Structs & Enums
Gestion des erreurs
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Serde & Serialization
Unsafe Rust
Traits Avancés
Lifetimes Avancés
Type System
Tokio & Async I/O
Optimisation de Performance
Memory Management
Web Frameworks
Database Integration
Design Patterns Rust
Maîtrise Rust pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement