Les paramètres des fonctions en langage Go sont des paramètres formels, qui sont des variables locales, et leurs valeurs sont fournies par l'appelant du paramètre si les types des paramètres formels adjacents sont les mêmes, alors les types des premiers paramètres peuvent être omis et écrire simplement Le type du dernier paramètre suffit, la syntaxe "func funcName (paramètre formel 1, paramètre formel 2 paramètre type 1, paramètre formel 3, paramètre formel 4 paramètre type 2, ...) (liste de valeurs de retour ) { //Exécuter l'instruction..retourner la liste des valeurs de retour}".
L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.
Paramètres des fonctions du langage Go
Les paramètres des fonctions dans le langage Go sont des paramètres formels, c'est-à-dire que si nous passons par valeur, les paramètres passés sont en fait une copie des paramètres réels, pas le réel réel paramètres paramètre. Les paramètres formels sont des variables locales dont les valeurs sont fournies par l'appelant du paramètre.
En langage Go, si plusieurs paramètres de fonction adjacents ont le même type, nous pouvons alors omettre les types des premiers paramètres et n'avoir qu'à écrire le type du dernier paramètre.
func funcName(param1, param2 paramType1, param3, param4 paramType2, ...)(returnVal returnType){ // 执行语句... return 返回值列表 }
Explication
Les paramètres param1 et param2 ont le même type, nous pouvons donc omettre le type de paramètre après param1 et écrire le type directement après param2.
Les paramètres param3 et param4 ont le même type, nous pouvons alors omettre le type de paramètre après param3 et écrire le type directement après param4.
returnVal returnType
est la liste de valeurs de retour, qui décrit le nom de la variable et le type de la valeur de retour de la fonction. Si la fonction renvoie une variable sans nom ou aucune valeur de retour, les parenthèses dans la liste de valeurs de retour peuvent être omises.
Case
Utilisez une fonction pour trouver le plus grand commun diviseur de deux nombres
package main import ( "fmt" ) func gcdNormal(x, y int) int { var n int if x > y { n = y } else { n = x } for i := n; i >= 1; i-- { if x%i == 0 && y%i == 0 { return i } } return 1 } func main() { //用函数,实现计算两个数的最大公约数 gcd := gcdNormal(10,20) fmt.Println("Gcd =", gcd) }
Une fois le programme exécuté, la sortie de la console est la suivante :
Nous avons défini un fonction gcdNormal, en passant deux paramètres de type int a et b, et la fonction renvoie une variable de type int. Cette fonction utilise la méthode exhaustive pour implémenter la logique de recherche du plus grand diviseur commun du paramètre a et du paramètre b. Étant donné que les types du paramètre a et du paramètre b sont tous deux de type int, nous omettons le type après le paramètre a et l'écrivons directement dans le paramètre. b. plus tard.
Dans la fonction main(), nous avons appelé la fonction gcdNormal et passé les deux paramètres 10 et 20, utilisé la variable gcd pour accepter la valeur renvoyée par la fonction gcdNormal, et enfin utilisé la fonction Println() pour imprimer le résultat final. résultat.
Les paramètres de fonction sont des paramètres formels
Les paramètres de fonction du langage Go sont des paramètres formels, et les modifications apportées aux paramètres de fonction n'affecteront pas les paramètres réels
package main import ( "fmt" ) func change(a int) { a += 100 } func main() { //Go语言的函数参数是函数参数,对函数参数的修改不会影响实参 a := 10 change(a) fmt.Println("a =", a) }
Une fois le programme exécuté, la sortie de la console est la suivante :
Nous définissons Créer une fonction change() et passons un paramètre a de type int Dans le corps de la fonction, ajoutez 100 au paramètre de la fonction.
Dans la fonction main(), appelez cette fonction et transmettez la variable a. Après avoir exécuté la fonction change(), nous imprimons à nouveau la valeur de la variable a et constatons que la valeur de a est toujours 10, pas 110 après. en ajoutant 100.
Parce que dans le langage Go, les paramètres de la fonction sont des paramètres formels, c'est-à-dire des copies des paramètres réels, donc ce qui est modifié ne sont pas les paramètres réels, donc la valeur de a ne changera pas.
Modifier les paramètres réels via les paramètres de fonction
Pour modifier les paramètres réels via les paramètres de fonction dans les fonctions du langage Go, vous devez utiliser des types de pointeurs
package main import ( "fmt" ) func change(a *int) { *a += 100 } func main() { //Go语言的函数要通过函数参数修改实参,必须要使用指针类型 a := 10 change(&a) fmt.Println("a =", a) }
Nous définissons un changement de fonction() et transmettons un paramètre de type pointeur int a, dans le corps de la fonction, implémente l'opération d'ajout de 100 aux paramètres de la fonction.
Dans la fonction main(), appelez cette fonction et transmettez l'adresse de la variable a. Après avoir exécuté la fonction change(), nous imprimons à nouveau la valeur de la variable a et constatons que la valeur de a a été augmentée de 100 à 110.
La fonction change() passe ici l'adresse de a. Ensuite, nous utilisons l'opérateur pointeur dans la fonction change() pour obtenir la variable pointée par l'adresse de a, puis modifions sa valeur. modifiée est la variable a sa propre valeur.
Résumé des paramètres des fonctions du langage Go
Les paramètres des fonctions dans le langage Go sont des paramètres formels, c'est-à-dire que si nous passons par valeur, les paramètres passés sont en fait une copie des paramètres réels, pas les paramètres réels. paramètres paramètre.
En langage Go, si plusieurs paramètres de fonction adjacents ont le même type, nous pouvons alors omettre les types des premiers paramètres et n'avoir qu'à écrire le type du dernier paramètre.
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!