本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
