
Fehlerbehandlung
Result<T, E>, Option<T>, unwrap, expect, ?, benutzerdefinierte Fehler, Fehlerpropagierung
1Welcher Rust-Typ stellt einen Wert dar, der vorhanden sein kann oder nicht?
Welcher Rust-Typ stellt einen Wert dar, der vorhanden sein kann oder nicht?
Antwort
Option<T> ist ein Enum, das entweder Some(T) mit einem Wert oder None zur Angabe des Fehlens eines Werts sein kann. Dieser Typ ersetzt die in anderen Sprachen vorhandenen Null-Werte und zwingt den Entwickler, den Fall eines fehlenden Werts explizit zu behandeln, wodurch Null-Pointer-Fehler zur Laufzeit vermieden werden.
2Welcher Rust-Typ repräsentiert eine Operation, die erfolgreich sein oder mit einem Fehler fehlschlagen kann?
Welcher Rust-Typ repräsentiert eine Operation, die erfolgreich sein oder mit einem Fehler fehlschlagen kann?
Antwort
Result<T, E> ist ein Enum mit zwei Varianten: Ok(T) für den Erfolg, das den Rückgabewert enthält, und Err(E) für den Fehlschlag, das den Fehler enthält. Dieser Typ erzwingt eine explizite Fehlerbehandlung anstelle von Ausnahmen, wodurch der Code vorhersehbarer und Fehler sichtbarer werden.
3Was macht die Methode unwrap() bei einem Option<T>?
Was macht die Methode unwrap() bei einem Option<T>?
Antwort
unwrap() gibt den in Some(T) enthaltenen Wert zurück, falls er existiert. Ist das Option None, gerät das Programm in Panik (panic!) und stoppt sofort. Diese Methode ist praktisch zum Prototyping, sollte aber in der Produktion vermieden werden, da sie den None-Fall nicht elegant behandelt.
Was ist der Unterschied zwischen unwrap() und expect()?
Was macht der ?-Operator in einer Funktion, die Result<T, E> zurückgibt?
+15 Interview-Fragen
Weitere Rust-Interviewthemen
Rust-Grundlagen
Ownership & Borrowing
Structs & Enums
Collections
Module & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
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