Aller au contenu principal
Publié le

Les fonctions en Go

Partager :

Introduction

Dans le monde de la programmation, les fonctions sont des blocs de code réutilisables qui effectuent une tâche spécifique. Go, en tant que langage moderne et puissant, propose une variété de fonctionnalités liées aux fonctions qui le rendent unique.

Déclaration des Fonctions

En Go, une fonction est déclarée à l'aide du mot-clé func, suivi du nom de la fonction, des paramètres (le cas échéant) et du type de retour.

func nomDeLaFonction(parametre1 type1, parametre2 type2) typeRetour {
  // Corps de la fonction
}

Par exemple :

func somme(a int, b int) int {
  return a + b
}

Retours Multiples

Une caractéristique intéressante de Go est la capacité de retourner plusieurs valeurs depuis une fonction.

func divisionEtReste(a int, b int) (int, int) {
  return a / b, a % b
}

Cette fonction retourne à la fois le quotient et le reste de la division.

Fonctions Anonymes et Closures

Go prend en charge les fonctions anonymes, qui peuvent former des closures. Les fonctions anonymes sont utiles lorsqu'on souhaite définir une fonction inline sans lui donner de nom.

func() {
  fmt.Println("Ceci est une fonction anonyme !")
}()

Une closure est une fonction qui a accès aux variables de son environnement externe :

func compteur() func() int {
  compte := 0

  return func() int {
    compte++
    return compte
  }
}

func main() {
  monCompteur := compteur()
  fmt.Println(monCompteur()) // Affiche 1
  fmt.Println(monCompteur()) // Affiche 2
}

Paramètres Variadiques

Go permet également d'utiliser des paramètres variadiques, ce qui signifie que vous pouvez passer un nombre indéfini de paramètres à une fonction. Ils sont définis en utilisant ... avant le type du paramètre.

func sommation(nombres ...int) int {
  total := 0

  for _, num := range nombres {
    total += num
  }

  return total
}

Conclusion

Les fonctions en Go sont polyvalentes et puissantes, permettant aux développeurs de créer un code propre, efficace et réutilisable. Qu'il s'agisse de tirer parti des retours multiples, d'utiliser des closures ou de gérer des paramètres variadiques, maîtriser les fonctions en Go est essentiel pour une programmation efficace.

Happy coding!