Generics trong Rust có tác dụng với các đặc điểm. Khi chúng ta mô tả một kiểu tham số hóa T
, chúng ta có thể hạn chế những kiểu nào có thể được sử dụng làm đối số bằng cách liệt kê những đặc điểm bắt buộc mà đối số phải triển khai.
Trong ví dụ này, kiểu T
phải triển khai đặc điểmFoo
:
fn my_function<T>(foo: T)
where
T:Foo
{
...
}
Bằng cách sử dụng generic, chúng ta tạo ra các hàm được định kiểu tĩnh tại thời điểm biên dịch mà sẽ có các loại và kích thước đã biết, cho phép chúng ta thực hiện điều phối tĩnh và lưu trữ dưới dạng giá trị có kích thước(sized value).