
Просунуті trait'и
Associated type проти generic, GATs, trait object, ключове слово dyn, object safety, vtable
1Яка основна різниця між associated type і generic-параметром у trait?
Яка основна різниця між associated type і generic-параметром у trait?
Відповідь
Associated type дозволяє лише одну реалізацію trait на тип, тоді як generic-параметр дозволяє кілька реалізацій. З associated type тип визначається самою реалізацією, що спрощує виведення типів і дозволяє не вказувати тип при кожному використанні.
2Яке ключове слово використовується для створення trait object у Rust?
Яке ключове слово використовується для створення trait object у Rust?
Відповідь
Ключове слово dyn використовується для створення trait object у Rust. Воно вказує, що диспетчеризація методів відбуватиметься динамічно під час виконання через vtable, на відміну від статичної диспетчеризації generic, яка вирішується під час компіляції.
3Що таке vtable у контексті trait object?
Що таке vtable у контексті trait object?
Відповідь
vtable (virtual table) — це таблиця вказівників на реалізації методів trait для конкретного типу. Вона використовується для динамічної диспетчеризації trait object, дозволяючи викликати правильний метод під час виконання, не знаючи конкретного типу під час компіляції.
Яку умову має задовольняти trait, щоб бути object-safe?
Чому trait Clone не є object-safe?
+19 питань зі співбесід
Інші теми співбесід Rust
Основи Rust
Ownership & Borrowing
Structs & Enums
Обробка помилок
Колекції
Модулі та пакети
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Макроси
Serde та серіалізація
Unsafe Rust
Просунуті Lifetimes
Type System
Tokio & Async I/O
Оптимізація продуктивності
Memory Management
Web Frameworks
Database Integration
Патерни проєктування Rust
Опануй Rust для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно