Il existe deux manières d'appeler des fonctions dans Go : en passant par valeur et en passant par référence. Le passage par valeur transmet une copie de la variable à la fonction sans affecter la valeur de la variable d'origine ; le passage par référence transmet l'adresse de la variable à la fonction, et toute modification affectera la valeur de la variable d'origine. En combat réel, la fonction Ajouter utilise le passage de valeur et la fonction Multiplier utilise le passage de référence pour modifier la valeur de la variable de différentes manières.
Dans le langage Go, l'appel de fonction peut être implémenté de deux manières : en passant par valeur et en passant par référence.
Pass-by-value transmet une copie d'une variable à une fonction, ce qui signifie que toute modification au sein de la fonction n'affectera pas la valeur de la variable d'origine.
package main import "fmt" func add(x int) int { x++ // 修改 x 的副本 return x } func main() { y := 5 newY := add(y) // 传递 y 的副本 fmt.Println(newY) // 输出 6 fmt.Println(y) // 输出 5 }
Pass-by-reference transmet l'adresse d'une variable à une fonction, ce qui signifie que toute modification apportée à la variable dans la fonction affectera la valeur de la variable d'origine.
package main import "fmt" func add(x *int) { *x++ // 修改 x 指向的值 } func main() { y := 5 add(&y) // 传递 y 的地址 fmt.Println(y) // 输出 6 }
Dans le code suivant, nous définissons deux fonctions : Add
和 Multiply
。Add
使用值传递,而 Multiply
Passer par référence.
package main import "fmt" func Add(x int) { x++ } func Multiply(x *int) { *x *= 2 } func main() { a := 5 Add(a) // 调用 Add,使用值传递 fmt.Println(a) // 输出 5(值不变) b := 10 Multiply(&b) // 调用 Multiply,使用引用传递 fmt.Println(b) // 输出 20(值已修改) }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!