
Makros
Deklarative Makros (macro_rules!), Derive-Makros, Attribut-Makros, prozedurale Makros, Makro-Hygiene
1Welche Syntax wird verwendet, um ein deklaratives Makro in Rust zu definieren?
Welche Syntax wird verwendet, um ein deklaratives Makro in Rust zu definieren?
Antwort
Die macro_rules!-Syntax wird verwendet, um deklarative Makros in Rust zu definieren. Diese Form der Metaprogrammierung nutzt Pattern Matching auf der Rust-Syntax, um Code zur Kompilierzeit zu transformieren. Deklarative Makros werden auch "macros by example" genannt, da sie funktionieren, indem sie Muster abgleichen und basierend auf diesen Mustern Code erzeugen.
2Wie ruft man ein Makro in Rust auf?
Wie ruft man ein Makro in Rust auf?
Antwort
Makros in Rust werden mit einem Ausrufezeichen nach ihrem Namen aufgerufen, gefolgt von Argumenten in runden, eckigen oder geschweiften Klammern. Diese Konvention ermöglicht es, Makroaufrufe visuell von normalen Funktionsaufrufen zu unterscheiden. Zum Beispiel sind println!("Hello") oder vec![1, 2, 3] Makroaufrufe.
3Welchen Fragment-Specifier verwendet man, um einen Ausdruck in einem deklarativen Makro zu erfassen?
Welchen Fragment-Specifier verwendet man, um einen Ausdruck in einem deklarativen Makro zu erfassen?
Antwort
Der Fragment-Specifier $e:expr erfasst einen Rust-Ausdruck in einem deklarativen Makro. Fragment-Specifier definieren die Art von Syntax, die das Makro akzeptieren kann. Andere gängige Specifier sind ident für Bezeichner, ty für Typen, tt für einen Token-Tree und block für einen Codeblock.
Was ist der Hauptunterschied zwischen deklarativen und prozeduralen Makros?
Was ist Makro-Hygiene in Rust?
+17 Interview-Fragen
Weitere Rust-Interviewthemen
Rust-Grundlagen
Ownership & Borrowing
Structs & Enums
Fehlerbehandlung
Collections
Module & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Serde & Serialisierung
Unsafe Rust
Fortgeschrittene Traits
Fortgeschrittene Lifetimes
Type System
Tokio & Async I/O
Performance-Optimierung
Memory Management
Web Frameworks
Database Integration
Rust Design Patterns
Meistere Rust für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten