Diferença entre == e === em Rust
Olá a todos! Recentemente comecei a estudar Rust e me deparei com um problema inesperado ao comparar valores. Em algumas linguagens (por exemplo, JavaScript), existem dois operadores de comparação: == (com coerção de tipos) e === (comparação estrita sem coerção).
Tentei usar === em Rust para comparar strings, mas o compilador gerou um erro:
fn main() {
let a = String::from("hello");
let b = String::from("hello");
if a === b {
println!("Iguais");
}
}
Erro: expected one of ".", ";", "?", "}", or an operator, found "=="
Esperava que === funcionasse como uma comparação estrita sem coerção de tipos, mas aparentemente esse operador não existe em Rust. Enquanto isso, o == normal funciona perfeitamente:
if a == b {
println!("Iguais");
}
Pergunta: qual é a diferença entre == e === em Rust?