
Trait nâng cao
Associated type so với generic, GATs, trait object, từ khóa dyn, object safety, vtable
1Sự khác biệt chính giữa associated type và tham số generic trong một trait là gì?
Sự khác biệt chính giữa associated type và tham số generic trong một trait là gì?
Câu trả lời
Associated type chỉ cho phép một triển khai trait cho mỗi kiểu, trong khi tham số generic cho phép nhiều triển khai. Với associated type, kiểu được xác định bởi chính phần triển khai, giúp đơn giản hóa việc suy luận kiểu và tránh phải chỉ định kiểu ở mỗi lần sử dụng.
2Từ khóa nào được dùng để tạo một trait object trong Rust?
Từ khóa nào được dùng để tạo một trait object trong Rust?
Câu trả lời
Từ khóa dyn được dùng để tạo một trait object trong Rust. Nó cho biết việc dispatch phương thức sẽ diễn ra động tại thời điểm chạy thông qua một vtable, trái với static dispatch của generic vốn được giải quyết tại thời điểm biên dịch.
3Vtable là gì trong ngữ cảnh của trait object?
Vtable là gì trong ngữ cảnh của trait object?
Câu trả lời
vtable (virtual table) là một bảng các con trỏ trỏ tới các triển khai phương thức của trait cho một kiểu cụ thể. Nó được dùng cho dynamic dispatch của trait object, cho phép gọi đúng phương thức tại thời điểm chạy mà không cần biết kiểu cụ thể tại thời điểm biên dịch.
Một trait phải đáp ứng điều kiện nào để trở thành object-safe?
Tại sao trait Clone không phải là object-safe?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Rust khác
Cơ bản về Rust
Ownership & Borrowing
Structs & Enums
Xử lý lỗi
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialization
Unsafe Rust
Lifetime Nâng Cao
Type System
Tokio & Async I/O
Tối ưu hóa Hiệu suất
Memory Management
Web Frameworks
Database Integration
Design Pattern trong Rust
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í