Comparisons

Kiểu dữ liệu implement các trait này có thể được so sánh với nhau. Tất cả các trait này có thể được derive nếu các trường của kiểu dữ liệu sử dụng derive cũng implement các trait này.

PartialEqEq

PartialEq là một quan hệ tương đương một phần. Kiểu dữ liệu implement trait này phải định nghĩa hàm eq, hàm ne tự được định nghĩa dựa trên eq. Các toán tử ==!= sẽ gọi đến các hàm này.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Eq là một quan hệ tương đương toàn phần (tính phản xạ, đối xứng và bắc cầu). Kiểu dữ liệu implement trait này mặc định implement PartialEq. Các hàm yêu cầu quan hệ tương đương toàn phần sẽ sử dụng Eq dưới dạng một trait bound.

PartialOrdOrd

PartialOrd định nghĩa một quan hệ thứ tự một phần, với hàm partial_cmp. Trait này được sử dụng để implement các toán tử <, <=, >=, và >.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ord là một quan hệ thứ tự toàn phần, với hàm cmp trả về kiểu dữ liệu Ordering.

Speaker Notes

This slide should take about 10 minutes.

PartialEq có thể được implement để so sánh giữa các kiểu dữ liệu khác nhau, nhưng Eq thì không, vì Eq có tính phản xạ:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Trong thực tế, các trait này thường thường được derive, ít khi được implement.