Avatar ·

Différence entre == et === en Go

Bonjour à tous ! J'apprends Go après JavaScript et je suis confronté à une incompréhension des opérateurs de comparaison. En JS, il y a une comparaison stricte (===) et une comparaison non stricte (==), alors qu'en Go je ne vois que ==. Est-ce que je comprends bien qu'en Go il n'y a pas d'opérateur === ? Et si ce n'est pas le cas, comment fonctionne la comparaison pour différents types ?

J'ai essayé d'écrire ce code :

package main

import "fmt"

func main() {
    var a int = 5
    var b float64 = 5.0
    fmt.Println(a == b) // Erreur de compilation : mismatched types int and float64
}

Je m'attendais à ce que Go convertisse les types (comme la comparaison non stricte en JS) ou génère une erreur. J'ai obtenu une erreur de compilation. Donc, en Go, on ne peut pas du tout comparer directement int et float64 ? Faut-il toujours convertir explicitement les types ? Et qu'en est-il de la comparaison des structures ou des pointeurs ? Y a-t-il des cas où == se comporte comme une comparaison non stricte ?

Veuillez m'indiquer, s'il vous plaît, comment comparer correctement les valeurs en Go et p