
Smart Pointers
Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, трейти Deref та Drop
1Яке основне застосування Box<T> у Rust?
Яке основне застосування Box<T> у Rust?
Відповідь
Box<T> розміщує дані в heap, а не в stack. Це корисно для типів з невідомим під час компіляції розміром (рекурсивні типи), для передачі ownership великих даних без копіювання або для створення trait object. Сам вказівник Box має фіксований розмір у stack.
2Як визначити рекурсивний тип, такий як зв'язаний список, у Rust?
Як визначити рекурсивний тип, такий як зв'язаний список, у Rust?
Відповідь
Прямий рекурсивний тип на кшталт enum List { Cons(i32, List), Nil } не компілюється, бо компілятор не може визначити розмір. Використання Box<List> створює непряме посилання з фіксованим розміром (вказівник), що дозволяє компілятору обчислити розмір типу.
3Яка основна різниця між Rc<T> та Arc<T>?
Яка основна різниця між Rc<T> та Arc<T>?
Відповідь
Rc (Reference Counted) використовує неатомарний лічильник посилань, що робить його продуктивнішим, але обмежує одним потоком. Arc (Atomically Reference Counted) використовує атомарні операції для лічильника, що дозволяє спільний доступ між потоками, але з невеликими накладними витратами на продуктивність.
Що дозволяє трейт Deref у Rust?
Що таке interior mutability (внутрішня змінюваність) у Rust?
+19 питань зі співбесід
Інші теми співбесід Rust
Основи Rust
Ownership & Borrowing
Structs & Enums
Обробка помилок
Колекції
Модулі та пакети
Traits
Generics
Lifetimes
Iterators & Closures
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Макроси
Serde та серіалізація
Unsafe Rust
Просунуті trait'и
Просунуті Lifetimes
Type System
Tokio & Async I/O
Оптимізація продуктивності
Memory Management
Web Frameworks
Database Integration
Патерни проєктування Rust
Опануй Rust для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно