Rust

Advanced Traits

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

22 Interview-Fragen·
Senior
1

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

Antwort

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?

Antwort

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?

Antwort

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 Interview-Fragen

Meistere Rust für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten