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 และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี