ExpertiDict

Rust · Intermediário · Inglês · Técnico

PartialEq

/ˈpɑːɹʃəl ˌiː ˈkjuː/substantivo

Trait que habilita == e !=. Por ser parcial, aceita tipos em que um valor pode não ser igual a si mesmo, como f64 com NaN.

Onde usar

É derivado em structs e enums para comparar em testes com assert_eq!. Para usar como chave de HashMap também são necessários Eq e Hash.

Em código

#[derive(PartialEq, Debug)]
struct P { x: i32 }
let a = P { x: 1 };
let b = P { x: 1 };
println!("{}", a == b);
println!("{}", f64::NAN == f64::NAN);

Exemplos

Derive PartialEq so assert_eq works.

Derive PartialEq para o assert_eq funcionar.

f64 is PartialEq but not Eq because of NaN.

f64 é PartialEq, mas não Eq, por causa do NaN.

Cuidado

PartialEq não garante reflexividade; o Eq é o trait que promete que todo valor é igual a si mesmo.

Sinônimos

igualdade parcial

Veja também

Todos os termos de Rust