English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Online Tools

Golang Basic Tutorial

Golang Control Statements

Golang Functions & Methods

Golang Structures

Golang Slices & Arrays

Golang Strings (String)

Golang Pointers

Golang Interface

Golang Concurrency

Golang Exception (Error)

O (opérations de fichier)

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

Transmettre l'adresse mémoire de la variable

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

Transmettre l'adresse de la variable à l'appel de la fonction

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.