本文簡要介紹rust語言中 Trait std::cmp::Eq
的用法。
用法
pub trait Eq: PartialEq<Self> { }
相等比較的特征是 equivalence relations 。
這意味著,除了 a == b
和 a != b
是嚴格逆元之外,相等性必須是(對於所有 a
、 b
和 c
):
- 自反:
a == a
; - 對稱:
a == b
意味著b == a
;和 - 及物:
a == b
和b == c
意味著a == c
。
編譯器無法檢查此屬性,因此 Eq
意味著 PartialEq
,並且沒有額外的方法。
可導出的
此特征可與 #[derive]
一起使用。當derive
d 時,因為Eq
沒有額外的方法,它隻是通知編譯器這是等價關係而不是部分等價關係。請注意,derive
策略要求所有字段都是 Eq
,這並不總是需要的。
如何實現 Eq
?
如果您不能使用 derive
策略,請指定您的類型實現 Eq
,它沒有方法:
enum BookFormat { Paperback, Hardback, Ebook }
struct Book {
isbn: i32,
format: BookFormat,
}
impl PartialEq for Book {
fn eq(&self, other: &Self) -> bool {
self.isbn == other.isbn
}
}
impl Eq for Book {}
外來類型的實現
impl <'a> Eq for Utf8LossyChunk <'a>
相關用法
- Rust Entry.or_insert_with用法及代碼示例
- Rust ExitStatus.code用法及代碼示例
- Rust Error.source用法及代碼示例
- Rust Error.last_os_error用法及代碼示例
- Rust Entry.or_insert用法及代碼示例
- Rust ExactSizeIterator.is_empty用法及代碼示例
- Rust Extend.extend用法及代碼示例
- Rust Entry.and_modify用法及代碼示例
- Rust ExitStatusError.code用法及代碼示例
- Rust ExactSizeIterator用法及代碼示例
- Rust Error.chain用法及代碼示例
- Rust Error.description用法及代碼示例
- Rust ExitStatusError用法及代碼示例
- Rust Error.kind用法及代碼示例
- Rust ExitStatus.exit_ok用法及代碼示例
- Rust Entry.or_insert_with_key用法及代碼示例
- Rust Entry.key用法及代碼示例
- Rust Entry.or_default用法及代碼示例
- Rust ExitStatus.success用法及代碼示例
- Rust Error.from_raw_os_error用法及代碼示例
- Rust Entry.insert用法及代碼示例
- Rust Extend用法及代碼示例
- Rust Error.get_ref用法及代碼示例
- Rust Error用法及代碼示例
- Rust Error.into_inner用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Trait std::cmp::Eq。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。