Avatar ·

Rust中==和===的区别

大家好!我最近开始学习Rust,在比较值时遇到了一个意想不到的问题。在某些语言(例如JavaScript)中,有两个比较运算符:==(带类型转换)和===(严格比较,不带转换)。

我尝试在Rust中使用===来比较字符串,但编译器报错了:

fn main() {
    let a = String::from("hello");
    let b = String::from("hello");
    
    if a === b {
        println!("相等");
    }
}

错误信息:expected one of ".", ";", "?", "}", or an operator, found "=="

我原本期望===能像严格比较一样工作,不带类型转换,但显然Rust中没有这个运算符。而普通的==可以正常工作:

if a == b {
    println!("相等");
}

问题:在Rust中,==和===有什么区别?