Comment comparer correctement deux slices en Go pour l'égalité ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai un problème avec la comparaison de slices. J'essaie de vérifier si deux slices sont égaux en contenu, mais rien ne fonctionne.
Voici mon code :
```go
package main
import "fmt"
func main() {
a := []int{1, 2, 3}
b := []int{1, 2, 3}
if a == b {
fmt.Println("Les slices sont égaux !")
} else {
fmt.Println("Les slices ne sont pas égaux !")
}
}
```
Mais le compilateur donne une erreur : `invalid operation: a == b (slice can only be compared to nil)`. Pourquoi ? En Python ou JavaScript, je pouvais comparer des listes/tableaux avec `==` sans problème.
Je comprends qu'un slice est un type référence, mais comment comparer correctement deux slices élément par élément ? Dois-je écrire une fonction pour chaque type de slice (int, string, float, etc.) ? Ou Go a-t-il des outils intégrés ?
Je serais reconnaissant pour des exemples de code et une explication. Merci d'avance !
<<>>
Pourquoi les slices ne peuvent-ils pas être comparés avec == ?
En Go, un slice est un descripteur
No answers yet.
Connectez-vous pour laisser une réponse
Blogs
Algorithmes et structures de données en C++ : guide pratique pour développeurs
C# en 2025 : nouvelles fonctionnalités en pratique
Comment .NET lit les paramètres depuis app.config sous le capot : analyse pour les curieux
C++ pour la programmation système : pilotes et OS