Rust

Advanced Traits

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

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

What is the main difference between an associated type and a generic parameter in a trait?

Відповідь

An associated type allows only one trait implementation per type, while a generic parameter allows multiple implementations. With an associated type, the type is determined by the implementation itself, which simplifies type inference and avoids specifying the type at each use.

2

Which keyword is used to create a trait object in Rust?

Відповідь

The dyn keyword is used to create a trait object in Rust. It indicates that method dispatch will happen dynamically at runtime via a vtable, as opposed to static dispatch with generics which is resolved at compile time.

3

What is a vtable in the context of trait objects?

Відповідь

A vtable (virtual table) is a table of pointers to the trait method implementations for a concrete type. It is used for dynamic dispatch of trait objects, allowing the correct method to be called at runtime without knowing the concrete type at compile time.

4

What condition must a trait meet to be object-safe?

5

Why is the Clone trait not object-safe?

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

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

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

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