English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pointeurs de langage Go en tant que paramètres de fonctionLangage de programmation GoLe pointeur dans la variable est une variable utilisée pour stocker l'adresse mémoire d'une autre variable. Vous pouvez égalementVariable
De la même manière que le pointeur est transmis à la fonction. Il y a deux méthodes pour effectuer l'opération suivante :
Créer un pointeur et le transmettre à la fonction
Pour créer un pointeur, puis le transmettre à la fonctionDans le programme suivant, nous utilisons la fonctionptfxLa valeur à l'origine, cette fonction a un paramètre de pointeur de type entier, ce qui signifie que cette fonction n'accepte que des paramètres de type pointeur. En même temps, cette fonction modifie la variablexContient la valeur100. Mais après l'appel de la fonction, la valeur change en748comme indiqué dans la sortie.
// Le programme Go crée un pointeur //Et le transmettre à la fonction package main import \ //Accepter un pointeur en tant que paramètre func ptf(a *int) { //Déréférencement *a = 748 } func main() { //Variable normale var x = 100 fmt.Printf("La valeur de x avant l'appel de la fonction est : %d\n", x) //Obtenir une variable de pointeur //et allouer l'adresse var pa *int = &x //Appeler la fonction de la manière suivante //Transmettre le pointeur à la fonction ptf(pa) fmt.Printf("La valeur de x après l'appel de la fonction est : %d\n", x) }
Sortie :
La valeur de x avant l'appel de la fonction est : 100 La valeur de x après l'appel de la fonction est : 748
Considérez le programme suivant, nous n'avons pas créé de pointeurs pour stocker des variablesxl'adresse, c'est-à-dire l'adresse dans le programme ci-dessuspa。Nous transmettons directementxL'adresse est transmise à l'appel de la fonction, l'appel de la fonction est similaire à la méthode ci-dessus.
package main import \ // int type pointer en tant que paramètre func ptf(a *int) { *a = 748 } func main() { var x = 100 fmt.Printf("La valeur de x avant l'appel de la fonction est : %d\n", x) //En appelant la fonction //Transmettre l'adresse //La variable x ptf(&x) fmt.Printf("La valeur de x après l'appel de la fonction est : %d\n", x) }
Sortie :
La valeur de x avant l'appel de la fonction est : 100 La valeur de x après l'appel de la fonction est : 748
Attention :Vous pouvez également utiliser l'opérateur d'affectation courte (:=) pour déclarer des variables et des pointeurs dans le programme ci-dessus.