Passage par valeur de fonction en langage Go

Fonctions Go

Le passage signifie copier les paramètres réels et les transmettre à la fonction lors de son appel, de sorte que si les paramètres sont modifiés à l'intérieur de la fonction, cela n'affectera pas les paramètres réels.

Par défaut, Go utilise le passage par valeur, ce qui signifie que les paramètres réels ne sont pas affectés lors de l'appel.

Ce qui suit définit la fonction swap() :

/* 定义相互交换值的函数 */
func swap(x, y int) int {
   var temp int

   temp = x /* 保存 x 的值 */
   x = y    /* 将 y 值赋给 x */
   y = temp /* 将 temp 值赋给 y*/

   return temp;
}

Ensuite, utilisons le passage par valeur pour appeler la fonction swap() :

Exemple

package main

import "fmt"

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

   fmt.Printf("Avant l'échange, la valeur de a est : %d\n", a )
   fmt.Printf("Avant l'échange, la valeur de b est : %d\n", b )

   /* Échanger les valeurs en appelant une fonction */
   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 )
}

/* Définir une fonction qui échange les valeurs */
func swap(x, y int) int {
   var temp int

   temp = x /* Sauvegarder la valeur de x */
   x = y    /* Affecter la valeur de y à x */
   y = temp /* Affecter la valeur de temp à y */

   return temp;
}

Le résultat de l'exécution du code suivant est :

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

Le programme utilise le passage par valeur, donc les deux valeurs n'ont pas interagi. Nous pouvons utiliserle passage par référencepour réaliser l'effet d'échange.

Fonctions Go

autres extensions