Maison > développement back-end > Golang > Quelles sont les exigences pour les paramètres formels Golang ?

Quelles sont les exigences pour les paramètres formels Golang ?

青灯夜游
Libérer: 2022-12-19 11:28:42
original
4737 Les gens l'ont consulté

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

Quelles sont les exigences pour les paramètres formels Golang ?

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 返回值列表
}
Copier après la connexion

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)
}
Copier après la connexion

Une fois le programme exécuté, la sortie de la console est la suivante :

Quelles sont les exigences pour les paramètres formels Golang ?

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)
}
Copier après la connexion

Une fois le programme exécuté, la sortie de la console est la suivante :

Quelles sont les exigences pour les paramètres formels Golang ?

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)
}
Copier après la connexion

Quelles sont les exigences pour les paramètres formels Golang ?

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal