Aller au contenu principal
Publié le

Erreurs Courantes en Go

Partager :

Introduction

Bien que Go soit connu pour sa simplicité et son efficacité, comme tout langage de programmation, il possède des particularités qui peuvent être source d'erreurs pour les développeurs. Dans cet article, nous explorons certaines de ces erreurs courantes pour vous aider à éviter les pièges dans votre code.

1. Ne pas gérer les erreurs retournées

Une erreur classique en Go est d'ignorer les erreurs retournées par les fonctions.

res, _ := http.Get("https://api.exemple.com/data")

La bonne pratique serait de gérer l'erreur en la vérifiant :

res, err := http.Get("https://api.exemple.com/data")

if err != nil {
  log.Fatalf("Erreur lors de la récupération des données : %v", err)
}

2. Utilisation incorrecte des packages

Importer des packages inutiles ou utiliser des packages inadaptés à la tâche en question sont des erreurs courantes.

import (
  "fmt"
  "math/rand"
)

func main() {
  fmt.Println(rand.Intn(100))  // Peut ne pas être aussi aléatoire que vous le pensez !
}

3. Les slices et leurs pièges

Une compréhension imprécise du fonctionnement des slices en Go peut entraîner des comportements inattendus.

a := []int{1, 2, 3}
b := a[:2]
b[0] = 42
fmt.Println(a)  // [42, 2, 3]

Dans cet exemple, b est un slice de a, ce qui signifie qu'ils partagent la même mémoire. En modifiant b, vous modifiez également a.

4. Goroutines et fermetures

Lors de l'utilisation de goroutines avec des boucles, il est courant de rencontrer des comportements inattendus en raison de l'utilisation de fermetures.

for i := 0; i < 3; i++ {
  go func() {
    fmt.Println(i)
  }()
}

La sortie ci-dessus peut surprendre, car elle peut afficher le même nombre plusieurs fois.

Conclusion

Go est un langage puissant et intuitif, mais, comme tous les langages, il a ses nuances. En vous familiarisant avec ces erreurs courantes, vous serez mieux préparé à écrire du code Go plus robuste et efficace.

Happy coding!