当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Eq用法及代码示例


本文简要介绍rust语言中 Trait core::cmp::Eq 的用法。

用法

pub trait Eq: PartialEq<Self> { }

相等比较的特征是 equivalence relations

这意味着,除了 a == ba != b 是严格逆元之外,相等性必须是(对于所有 abc ):

  • 自反:a == a
  • 对称:a == b 意味着 b == a ;和
  • 及物: a == bb == 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 {}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Trait core::cmp::Eq。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。