Rust

Smart Pointers

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

22 questions d'entretien·
Confirmé
1

Quel est le principal cas d'usage de Box<T> en Rust ?

Réponse

Box<T> permet d'allouer des donnees sur le heap plutot que sur la stack. C'est utile pour les types de taille inconnue a la compilation (types recursifs), pour transferer la propriete de grandes donnees sans copie, ou pour creer des trait objects. Le pointeur Box lui-meme a une taille fixe sur la stack.

2

Comment definir un type recursif comme une liste chainee en Rust ?

Réponse

Un type recursif direct comme enum List { Cons(i32, List), Nil } ne compile pas car le compilateur ne peut pas determiner la taille. En utilisant Box<List>, on cree une indirection avec une taille fixe (pointeur), permettant au compilateur de calculer la taille du type.

3

Quelle est la difference principale entre Rc<T> et Arc<T> ?

Réponse

Rc (Reference Counted) utilise un compteur de references non-atomique, ce qui le rend plus performant mais limite a un seul thread. Arc (Atomically Reference Counted) utilise des operations atomiques pour le compteur, permettant le partage entre threads mais avec un leger overhead de performance.

4

Que permet le trait Deref en Rust ?

5

Qu'est-ce que la mutabilite interieure (interior mutability) en Rust ?

+19 questions d'entretien

Maîtrise Rust pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement