Diferença entre == e === em Go
Olá a todos! Estou aprendendo Go depois de JavaScript e me deparei com uma falta de compreensão dos operadores de comparação. Em JS, há comparação estrita (===) e não estrita (==), enquanto em Go vejo apenas ==. Estou correto ao entender que Go não tem o operador ===? E se não tem, como funciona a comparação para tipos diferentes?
Tentei escrever este código:
package main
import "fmt"
func main() {
var a int = 5
var b float64 = 5.0
fmt.Println(a == b) // Erro de compilação: mismatched types int and float64
}Esperava que Go convertesse os tipos (como a comparação não estrita em JS) ou gerasse um erro. Recebi um erro de compilação. Ou seja, em Go não é possível comparar int e float64 diretamente? É sempre necessário converter os tipos explicitamente? E quanto à comparação de structs ou ponteiros? Existem casos em que == se comporta como comparação não estrita?
Por favor, me digam como comparar valores corretamente em Go e se