Rust

Trait nâng cao

Associated type so với generic, GATs, trait object, từ khóa dyn, object safety, vtable

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

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.

2

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.

3

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.

4

Một trait phải đáp ứng điều kiện nào để trở thành object-safe?

5

Tại sao trait Clone không phải là 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í