Pointeurs du langage Go comme paramètres de fonction

Pointeur Go

Le langage Go permet de passer des pointeurs à des fonctions ; il vous suffit de définir le type du paramètre comme un pointeur dans la définition de la fonction.

L'exemple suivant montre comment passer des pointeurs à des fonctions et modifier les valeurs dans la fonction après l'appel de la fonction :

Exemple

package main

import "fmt"

func main() {
   /* Définir les variables locales */
   var a int = 100
   var b int= 200

   fmt.Printf("Valeur de a avant l'échange : %d\n\n", a )
   fmt.Printf("Valeur de b avant l'échange : %d\n\n", b )

   /* Appeler la fonction pour échanger les valeurs
* &a pointe vers l'adresse de la variable a
* &b pointe vers l'adresse de la variable b
   */

   swap(&a, &b);

   fmt.Printf("Valeur de a après l'échange : %d\n\n", a )
   fmt.Printf("Valeur de b après l'échange : %d\n\n", b )
}

func swap(x *int, y *int) {
   var temp int
   temp = *x    /* Enregistrer la valeur à l'adresse de x */
   *x = *y      /* Affecter y à x */
   *y = temp    /* Affecter temp à y */
}

Les exemples ci-dessus peuvent produire le résultat suivant :

交换前 a 的值 : 100
交换前 b 的值 : 200
交换后 a 的值 : 200
交换后 b 的值 : 100

Pointeur Go

autres extensions