Go中==和===的区别
大家好!我在学习Go,之前用的是JavaScript,对比较运算符有些困惑。在JS中有严格比较(===)和非严格比较(==),而在Go中我只看到==。我的理解是否正确,Go中没有===运算符?如果没有,那么不同类型之间的比较是如何工作的?
我尝试写了这样的代码:
package main
import "fmt"
func main() {
var a int = 5
var b float64 = 5.0
fmt.Println(a == b) // 编译错误:mismatched types int and float64
}我原本以为Go要么会进行类型转换(像JS的非严格比较),要么会报错。结果我得到了编译错误。也就是说在Go中根本不能直接比较int和float64?总是需要显式地进行类型转换?那么结构体或指针的比较呢?有没有==表现得像非严格比较的情况?
请告诉我如何在Go中正确地比较值,以及