Section 4 : Les fonctions
Une déclaration de fonction a la structure suivante en Go :
Une déclaration commence toujours par func, suivi du nom de la fonction, qui doit être écrite en camelCase ou en PascalCase. Comme pour les variables, si le nom de la fonction commence par une minuscule, la fonction sera privée et accessible seulement dans le paquet qui la contient, tandis que si le nom commence par une majuscule, la fonction sera publique, donc accessible de l'extérieur du paquet. Donc, pour une fonction privée, on utilise le camelCase, et pour une fonction publique, on utilise le PascalCase.
Si la fonction ne retourne rien, alors on doit omettre le type de retour. On ne doit pas utiliser void comme dans d'autres langages.
Sortie :
Voici une fonction qui fait un calcul simple et retourne le résultat :
Sortie avec l'appel fmt.Println(square(4)): 16
Il est possible pour une fonction de retourner plus qu'une valeur. Les types de retours doivent être séparés par des virgules, et des parenthèses doivent être utilisées autour des types de retour.
Voici une fonction qui retourne les 2 valeurs données en paramètre, mais en ordre inverse.
Appel de la fonction :
Sortie : 5 2
Voici une autre fonction pour échanger des valeurs, mais elle ne fonctionne pas :
Appel de la fonction :
Sortie :
Plus de détails vont être donnés dans le chapitre suivant, mais la raison pourquoi cette fonction n'a aucun effet sur les variables a et b est que la fonction travaille sur des copies des valeurs de a et b. Les variables x et y sont initialisés avec les valeurs de a et b, mais sont indépendantes de a et b.
La meilleure façon d'échanger les valeurs de deux variables en Go est celle-ci :
b, a = a, b.
b va obtenir la valeur de a, et a va obtenir la valeur de b. Ça fonctionne parce que les changements de valeurs vont se faire en parallèle.