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.
PartialEq
và Eq
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ử ==
và !=
sẽ gọi đến các hàm này.
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.
PartialOrd
và Ord
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à >
.
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ạ:
Trong thực tế, các trait này thường thường được derive, ít khi được implement.