Aller aux fonctions de langage


Les fonctions sont des blocs de code de base qui exécutent une tâche.

Le langage Go a au moins une fonction main().

Vous pouvez diviser différentes fonctions en fonctions Logiquement, chaque fonction effectue une tâche spécifiée.

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

La bibliothèque standard du langage Go fournit une variété de fonctions intégrées qui peuvent être utilisées. Par exemple, la fonction len() peut accepter des arguments de différents types et renvoyer la longueur de ce type. Si nous transmettons une chaîne, la longueur de la chaîne est renvoyée. Si nous transmettons un nombre, le nombre de fonctions contenues dans le tableau est renvoyé.


Définition de la fonction

Le format de définition de la fonction du langage Go est le suivant :

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

Analyse de la définition de la fonction :

  • func : function Déclaration à partir de func

  • function_name : le nom de la fonction, le nom de la fonction et la liste des paramètres constituent ensemble la signature de la fonction.

  • liste des paramètres] : Liste des paramètres, le paramètre est comme un espace réservé, lorsque la fonction est appelée, vous pouvez transmettre la valeur au paramètre, cette valeur est appelée le paramètre réel. La liste des paramètres spécifie le type de paramètre, l'ordre et le nombre de paramètres. Les paramètres sont facultatifs, ce qui signifie que la fonction ne peut également contenir aucun paramètre.

  • return_types : type de retour, la fonction renvoie une liste de valeurs. return_types est le type de données de la valeur de la colonne. Certaines fonctions ne nécessitent pas de valeur de retour, auquel cas return_types n'est pas requis.

  • Corps de fonction : une collection de codes pour les définitions de fonctions.

Exemple

L'exemple suivant est le code de la fonction max(). Cette fonction passe deux paramètres entiers num1 et num2 et renvoie la valeur maximale de ces deux paramètres. . Valeur :

/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
   /* 声明局部变量 */
   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 vous effectuez la tâche spécifiée en appelant la fonction.

Appelez une fonction, transmettez des paramètres à la fonction et renvoyez une valeur, par exemple :

package main

import "fmt"

func main() {
   /* 定义局部变量 */
   var a int = 100
   var b int = 200
   var ret int

   /* 调用函数并返回最大值 */
   ret = max(a, b)

   fmt.Printf( "最大值是 : %d\n", ret )
}

/* 函数返回两个数的最大值 */
func max(num1, num2 int) int {
   /* 定义局部变量 */
   var result int

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

L'exemple ci-dessus appelle la fonction max() dans la fonction main(), et l'exécution le résultat est :

最大值是 : 200

La fonction renvoie plusieurs valeurs

La fonction Go peut renvoyer plusieurs valeurs, par exemple :

package main

import "fmt"

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

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

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

Kumar Mahesh

paramètre de fonction

Si une fonction utilise des paramètres, la variable peut être appelée le paramètre formel de la fonction.

Les paramètres formels sont comme des variables locales définies dans le corps de la fonction.

Lors de l'appel d'une fonction, les paramètres peuvent être transmis de deux manières :

传递类型描述
值传递值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
引用传递引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

Par défaut, le langage Go utilise le passage de valeurs, c'est-à-dire que les paramètres réels ne seront pas affectés lors de l'appel.


Utilisation des fonctions

函数用法描述
函数作为值函数定义后可作为值来使用
闭包闭包是匿名函数,可在动态编程中使用
方法方法就是一个包含了接受者的函数