Rust · Intermediário · Inglês · Técnico
PartialEq
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