Avatar ·

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