Aller - Appel par valeur

le call by valueLa méthode de transmission d'arguments à une fonction copie la valeur réelle d'un argument dans le paramètre formel de la fonction. Dans ce cas, les modifications apportées au paramètre à l'intérieur de la fonction n'ont aucun effet sur l'argument.

Par défaut, le langage de programmation Go utilise la méthode d' appel par valeur pour transmettre des arguments. En général, cela signifie que le code dans une fonction ne peut pas modifier les arguments utilisés pour appeler la fonction. Considérez la fonctionswap() définition comme suit.

/* function definition to swap the values */
func swap(int x, int y) int {
   var temp int

   temp = x /* save the value of x */
   x = y    /* put y into x */
   y = temp /* put temp into y */

   return temp;
}

Maintenant, appelons la fonction swap() en passant des valeurs réelles comme dans l'exemple suivant -

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 */
   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, y int) int {
   var temp int

   temp = x /* save the value of x */
   x = y    /* put y into x */
   y = temp /* put temp into y */

   return temp;
}

Placez le code ci-dessus dans un seul fichier C, puis compilez-le et exécutez-le. Il produira le résultat suivant -

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

Cela montre qu'il n'y a pas de changement dans les valeurs bien qu'elles aient été modifiées à l'intérieur de la fonction.