Passage par valeur de fonction en langage 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;
}
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.
autres extensions