本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
