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
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
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
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. |