Rust

Smart Pointers

Box<T>, Rc<T>, Arc<T>, RefCell<T>, interior mutability, Deref, Drop traits

22 питань зі співбесід·
Mid-Level
1

What is the primary use case for Box<T> in Rust?

Відповідь

Box<T> allocates data on the heap instead of the stack. This is useful for types with unknown size at compile time (recursive types), transferring ownership of large data without copying, or creating trait objects. The Box pointer itself has a fixed size on the stack.

2

How to define a recursive type like a linked list in Rust?

Відповідь

A direct recursive type like enum List { Cons(i32, List), Nil } does not compile because the compiler cannot determine the size. Using Box<List> creates an indirection with a fixed size (pointer), allowing the compiler to calculate the type's size.

3

What is the main difference between Rc<T> and Arc<T>?

Відповідь

Rc (Reference Counted) uses a non-atomic reference counter, making it more performant but limited to a single thread. Arc (Atomically Reference Counted) uses atomic operations for the counter, enabling sharing across threads but with a slight performance overhead.

4

What does the Deref trait enable in Rust?

5

What is interior mutability in Rust?

+19 питань зі співбесід

Опануй Rust для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно