
Smart Pointers
Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, Deref- und Drop-Traits
1Was ist der primäre Anwendungsfall für Box<T> in Rust?
Was ist der primäre Anwendungsfall für Box<T> in Rust?
Antwort
Box<T> allokiert Daten auf dem Heap statt auf dem Stack. Das ist nützlich für Typen mit zur Compile-Zeit unbekannter Größe (rekursive Typen), zum Übertragen der Ownership großer Daten ohne Kopieren oder zum Erstellen von Trait Objects. Der Box-Pointer selbst hat eine feste Größe auf dem Stack.
2Wie definiert man einen rekursiven Typ wie eine verkettete Liste in Rust?
Wie definiert man einen rekursiven Typ wie eine verkettete Liste in Rust?
Antwort
Ein direkter rekursiver Typ wie enum List { Cons(i32, List), Nil } lässt sich nicht kompilieren, weil der Compiler die Größe nicht bestimmen kann. Durch die Verwendung von Box<List> entsteht eine Indirektion mit fester Größe (Pointer), wodurch der Compiler die Größe des Typs berechnen kann.
3Was ist der Hauptunterschied zwischen Rc<T> und Arc<T>?
Was ist der Hauptunterschied zwischen Rc<T> und Arc<T>?
Antwort
Rc (Reference Counted) verwendet einen nicht-atomaren Referenzzähler, was es performanter macht, aber auf einen einzigen Thread beschränkt. Arc (Atomically Reference Counted) verwendet atomare Operationen für den Zähler, wodurch das Teilen über Threads hinweg möglich wird, allerdings mit einem geringen Performance-Overhead.
Was ermöglicht der Deref-Trait in Rust?
Was ist interior mutability (innere Veränderbarkeit) in Rust?
+19 Interview-Fragen
Weitere Rust-Interviewthemen
Rust-Grundlagen
Ownership & Borrowing
Structs & Enums
Fehlerbehandlung
Collections
Module & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Makros
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