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,
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Introduction à Kotlin : par où commencer en 2025
Tests en C++ : unitaires, d'intégration, e2e — niveau avancé
Salaires des développeurs C++ en Russie 2024 : analyse complète du marché
Chaînes multilignes en JavaScript : 3 méthodes qui simplifieront la vie