Rust

Advanced Traits

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

22 câu hỏi phỏng vấn·
Senior
1

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

Câu trả lời

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?

Câu trả lời

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?

Câu trả lời

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 câu hỏi phỏng vấn

Nắm vững Rust cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí