Aller - Passer des pointeurs vers des fonctions

Le langage de programmation Go vous permet de passer un pointeur vers une fonction. Pour ce faire, déclarez simplement le paramètre de fonction en tant que type de pointeur.

Dans l'exemple suivant, nous passons deux pointeurs vers une fonction et modifions la valeur à l'intérieur de la fonction qui se reflète dans la fonction appelante -

package main

import "fmt"

func main() {
   /* local variable definition */
   var a int = 100
   var b int = 200

   fmt.Printf("Before swap, value of a : %d\n", a )
   fmt.Printf("Before swap, value of b : %d\n", b )

   /* calling a function to swap the values.
   * &a indicates pointer to a ie. address of variable a and 
   * &b indicates pointer to b ie. address of variable b.
   */
   swap(&a, &b);

   fmt.Printf("After swap, value of a : %d\n", a )
   fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
   var temp int
   temp = *x    /* save the value at address x */
   *x = *y      /* put y into x */
   *y = temp    /* put temp into y */
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100