
Smart Pointers
Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, traity Deref i Drop
1Jakie jest podstawowe zastosowanie Box<T> w Rust?
Jakie jest podstawowe zastosowanie Box<T> w Rust?
Odpowiedź
Box<T> alokuje dane na stercie (heap) zamiast na stosie (stack). Jest to przydatne dla typów o nieznanym rozmiarze w czasie kompilacji (typy rekurencyjne), do przekazywania ownership dużych danych bez kopiowania lub do tworzenia trait objects. Sam wskaźnik Box ma stały rozmiar na stosie.
2Jak zdefiniować typ rekurencyjny, taki jak lista wiązana, w Rust?
Jak zdefiniować typ rekurencyjny, taki jak lista wiązana, w Rust?
Odpowiedź
Bezpośredni typ rekurencyjny taki jak enum List { Cons(i32, List), Nil } nie kompiluje się, ponieważ kompilator nie może ustalić rozmiaru. Użycie Box<List> tworzy pośredniość o stałym rozmiarze (wskaźnik), co pozwala kompilatorowi obliczyć rozmiar typu.
3Jaka jest główna różnica między Rc<T> a Arc<T>?
Jaka jest główna różnica między Rc<T> a Arc<T>?
Odpowiedź
Rc (Reference Counted) używa nieatomowego licznika referencji, co czyni go wydajniejszym, ale ogranicza do jednego wątku. Arc (Atomically Reference Counted) używa operacji atomowych dla licznika, umożliwiając współdzielenie między wątkami, ale z niewielkim narzutem wydajnościowym.
Co umożliwia trait Deref w Rust?
Czym jest interior mutability (mutowalność wewnętrzna) w Rust?
+19 pytań z rozmów
Inne tematy rekrutacyjne Rust
Podstawy Rusta
Ownership & Borrowing
Structs & Enums
Obsługa błędów
Kolekcje
Moduły i pakiety
Traits
Generics
Lifetimes
Iterators & Closures
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Makra
Serde i serializacja
Unsafe Rust
Zaawansowane traity
Zaawansowane Lifetime
Type System
Tokio & Async I/O
Optymalizacja Wydajności
Memory Management
Web Frameworks
Database Integration
Wzorce projektowe w Rust
Opanuj Rust na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo