當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Rust Eq用法及代碼示例


本文簡要介紹rust語言中 Trait std::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 {}

外來類型的實現

impl <'a> Eq for Utf8LossyChunk <'a>

1.27.0

CpuidResult 實現 Eq

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Trait std::cmp::Eq。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。