Fonctions en langage Go

Les fonctions sont des blocs de code de base utilisés pour effectuer une tâche.

Le langage Go possède au moins une fonction main().

Vous pouvez diviser différentes fonctions en utilisant des fonctions ; logiquement, chaque fonction exécute une tâche spécifiée.

La déclaration de fonction indique au compilateur le nom de la fonction, le type de retour et les paramètres.

La bibliothèque standard Go fournit diverses fonctions intégrées qui sont disponibles. Par exemple, la fonction len() peut accepter des arguments de différents types et renvoyer la longueur de ce type. Si nous passons une chaîne, elle renvoie la longueur de la chaîne ; si nous passons un tableau, elle renvoie le nombre d'éléments contenus dans le tableau.


Définition de fonction

Le format de définition des fonctions en Go est le suivant :

func function_name( [parameter list] ) [return_types] {
   函数体
}

Analyse de la définition de fonction :

  • func : Une fonction est déclarée en commençant par func.
  • function_name : Le nom de la fonction, la liste des paramètres et le type de valeur de retour constituent la signature de la fonction.
  • liste de paramètres : La liste des paramètres. Les paramètres sont comme des espaces réservés. Lorsqu'une fonction est appelée, vous pouvez transmettre des valeurs aux paramètres, et ces valeurs sont appelées paramètres effectifs. La liste des paramètres spécifie les types, l'ordre et le nombre de paramètres. Les paramètres sont facultatifs, ce qui signifie qu'une fonction peut ne contenir aucun paramètre.
  • return_types : Le type de retour. La fonction renvoie une liste de valeurs. return_types est le type de données de cette liste de valeurs. Certaines fonctions n'ont pas besoin de valeur de retour ; dans ce cas, return_types n'est pas nécessaire.
  • Corps de fonction : l’ensemble du code qui définit la fonction.

Exemple

L’exemple suivant est le code de la fonction max(), qui prend deux paramètres entiers num1 et num2 et renvoie le maximum de ces deux paramètres :

Exemple

/* La fonction renvoie le maximum de deux nombres */
func max(num1, num2 int) int {
   /* déclarer les variables locales */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result
}

Appel de fonction

Lorsque vous créez une fonction, vous définissez ce que la fonction doit faire, et la tâche spécifiée est exécutée en appelant la fonction.

Appeler une fonction, passer des arguments à la fonction et renvoyer des valeurs, par exemple :

Exemple

package main

import "fmt"

func main() {
   /* Définir les variables locales */
   var a int = 100
   var b int = 200
   var ret int

   /* Appeler la fonction et retourner la valeur maximale */
   ret = max(a, b)

   fmt.Printf( "La valeur maximale est : %d\n\n", ret )
}

/* La fonction renvoie le maximum de deux nombres */
func max(num1, num2 int) int {
   /* Définir les variables locales */
   var result int

   if (num1 > num2) {
      result = num1
   } else {
      result = num2
   }
   return result
}

Dans l'exemple ci-dessus, la fonction max() est appelée dans la fonction main(), et le résultat de l'exécution est :

最大值是 : 200

Fonctions retournant plusieurs valeurs

Les fonctions Go peuvent retourner plusieurs valeurs, par exemple :

Exemple

package main

import "fmt"

func swap(x, y string) (string, string) {
   return y, x
}

func main() {
   a, b := swap("Google", "Example")
   fmt.Println(a, b)
}

Le résultat d'exécution de l'exemple ci-dessus est :

Example Google

Paramètres de fonction

Si une fonction utilise des paramètres, ces variables peuvent être appelées paramètres formels de la fonction.

Les paramètres formels sont comme des variables locales définies à l'intérieur du corps de la fonction.

Lors de l'appel d'une fonction, il y a deux façons de passer des arguments :

Type de passage Description
Passage par valeur Le passage par valeur signifie copier le paramètre réel et le transmettre à la fonction lors de l'appel de la fonction, de sorte que si le paramètre est modifié dans la fonction, cela n'affectera pas le paramètre réel.
Passage par référence Le passage par référence signifie transmettre l'adresse du paramètre réel dans la fonction lors de son appel. Les modifications apportées au paramètre à l'intérieur de la fonction affecteront alors le paramètre réel.

Par défaut, le langage Go utilise le passage par valeur, ce qui signifie que les paramètres réels ne seront pas affectés pendant l'appel.


Utilisation des fonctions

Utilisation des fonctions Description
Fonction comme argument d'une autre fonction Une fois qu'une fonction est définie, elle peut être transmise comme paramètre réel à une autre fonction.
Fermeture Une fermeture est une fonction anonyme qui peut être utilisée en programmation dynamique.
Méthodes Une méthode est une fonction qui contient un récepteur.
autres extensions