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中,==和===有什么区别?