Điều phối động vs điều phối tĩnh
Các phương thức được thực thi theo hai cách:
- static dispatch(điều phối tĩnh) - Khi kiểu thể hiện được biết, chúng ta biết trực tiếp về hàm nào sẽ gọi.
- dynamic dispatch(điều phối động) - Khi một kiểu thể hiện không được biết, chúng ta phải tìm ra một số cách gọi hàm chính xác.
Các kiểu đặc điểm &dyn MyTrait
cho chúng ta khả năng làm việc với các trường hợp của đối tượng một cách gián tiếp bằng cách sử dụng điều phối động.
Khi sử dụng điều phối động, Rust sẽ khuyến khích bạn đặt dyn
trước loại đặc điểm của bạn để mọi người nhận biết.
Chi tiết bộ nhớ:
- Điều phối động hơi chậm hơn do con trỏ đuổi theo để tìm lệnh gọi hàm thực.