Avatar ·

Comment comparer deux structures, slices ou maps en Go pour l'égalité ?

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème lors de la comparaison de types de données complexes. J'essaie de comparer deux structures, deux slices et deux maps, mais j'obtiens des résultats inattendus. Voici un exemple de code qui ne fonctionne pas : ```go package main import "fmt" type Person struct { Name string Age int } func main() { // Comparaison de structures p1 := Person{Name: "Alice", Age: 30} p2 := Person{Name: "Alice", Age: 30} fmt.Println("Les structures sont-elles égales ?", p1 == p2) // Affiche true, mais ce n'est pas toujours le cas // Comparaison de slices slice1 := []int{1, 2, 3} slice2 := []int{1, 2, 3} // fmt.Println(slice1 == slice2) // Erreur de compilation : slice can only be compared to nil // Comparaison de maps map1 := map[string]int{"a": 1, "b": 2} map2 := map[string]int{"a": 1, "b": 2} // fmt.Println(map1 == map2) // Erreur de compilation : map can only be compared to nil } ``` Je comprends que pour les slices et les maps, l'opérateur `==` ne fonctionne pas,