Rust

Traits Avancés

Associated types vs generics, GATs, trait objects, dyn keyword, object safety, vtables

22 questions d'entretien·
Senior
1

Quelle est la différence principale entre un type associé et un paramètre générique dans un trait ?

Réponse

Un type associé permet une seule implémentation du trait par type, tandis qu'un paramètre générique permet plusieurs implémentations. Avec un type associé, le type est déterminé par l'implémentation elle-même, ce qui simplifie l'inférence de types et évite de spécifier le type à chaque utilisation.

2

Quel mot-clé utiliser pour créer un trait object en Rust ?

Réponse

Le mot-clé dyn est utilisé pour créer un trait object en Rust. Il indique que le dispatch des méthodes se fera dynamiquement à l'exécution via une vtable, contrairement au dispatch statique des generics qui est résolu à la compilation.

3

Qu'est-ce qu'une vtable dans le contexte des trait objects ?

Réponse

Une vtable (virtual table) est une table de pointeurs vers les implémentations des méthodes du trait pour un type concret. Elle est utilisée pour le dispatch dynamique des trait objects, permettant d'appeler la bonne méthode à l'exécution sans connaître le type concret à la compilation.

4

Quelle condition un trait doit-il respecter pour être object-safe ?

5

Pourquoi le trait Clone n'est-il pas object-safe ?

+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