Tour of Rust Mục lục

Tính đa hình với các đặc điểm

Rust hỗ trợ tính đa hình với các đặc điểm(trait). Các đặc điểm cho phép chúng ta liên kết một tập hợp các phương thức với một kiểu cấu trúc.

Đầu tiên chúng ta xác định các dấu hiệu của các phương thức của một đặc điểm trong:

trait MyTrait {
    fn foo(&self);
    ...
}

Khi một struct triển khai một đặc điểm, nó sẽ thiết lập một hợp đồng cho phép chúng ta tương tác gián tiếp với struct thông qua loại đặc điểm (ví dụ: &dyn MyTrait) mà không cần biết loại thực sự.

Các đặc điểm của struct được xác định trong một khối thực hiện(implementation block):

impl MyTrait for MyStruct { 
    fn foo(&self) {
        ...
    }
    ... 
}