Maison > développement back-end > Golang > Similitudes et différences entre le passage par valeur et le passage par référence dans Golang

Similitudes et différences entre le passage par valeur et le passage par référence dans Golang

WBOY
Libérer: 2024-04-12 11:03:01
original
867 Les gens l'ont consulté

Il existe deux manières de transmettre des variables dans le langage Go : passage de valeur : une copie de la variable est transmise et la variable d'origine n'est pas affectée. Passer par référence : transmettez l'adresse de la variable, et la fonction peut accéder et modifier la variable d'origine.

Similitudes et différences entre le passage par valeur et le passage par référence dans Golang

Similarités et différences entre le passage de valeur et le passage de référence dans le langage Go

Dans le langage Go, il existe deux façons de transmettre des variables : le passage de valeur et le passage de référence. Comprendre la différence entre les deux est crucial car cela affectera la façon dont vous vous comportez lors de l'écriture du code.

Passage par valeur

Lorsqu'une variable est passée par valeur, une copie de la variable est transmise à la fonction ou à la méthode. Cela signifie que la variable d'origine n'est affectée par aucune modification apportée à la fonction.

func changeValue(x int) {
    x = 100
}

func main() {
    a := 5
    changeValue(a)
    fmt.Println(a) // 输出 5,因为原始值没有改变
}
Copier après la connexion

Dans l'exemple ci-dessus, la fonction changeValue prend un int avec une valeur de 5 comme paramètre. Lorsqu'une modification est apportée à ce paramètre, elle modifie uniquement la copie, pas la variable d'origine. changeValue 函数将一个值为 5 的 int 作为参数。当对该参数进行修改时,它只会修改副本,而不会修改原始变量。

引用传递

当以引用方式传递变量时,变量的地址被传递给函数或方法。这意味着函数可以访问并修改原始变量。

使用指针来实现引用传递。指针变量存储变量的地址。如下所示:

func changeReference(x *int) {
    *x = 100
}

func main() {
    a := 5
    changeReference(&a)
    fmt.Println(a) // 输出 100,因为原始值被修改
}
Copier après la connexion

在这个示例中,changeReference 函数接受一个指向整数的指针作为参数。当函数对 *x 进行修改时,它实际上是对指向 a 变量的地址进行修改,从而修改了 a

Passage par référence

Lorsqu'une variable est passée par référence, l'adresse de la variable est transmise à la fonction ou à la méthode. Cela signifie que la fonction peut accéder et modifier la variable d'origine.
  • Utilisez des pointeurs pour passer par référence. Les variables de pointeur stockent l'adresse d'une variable. Comme indiqué ci-dessous : rrreeeDans cet exemple, la fonction changeReference accepte un pointeur vers un entier comme paramètre. Lorsqu'une fonction modifie *x, elle modifie en fait l'adresse pointant vers la variable a, modifiant ainsi la valeur originale de a .
  • Résumé
🎜🎜 Passage par valeur 🎜 : Passez une copie de la variable, la variable d'origine n'est pas affectée par les modifications apportées dans la fonction. 🎜🎜🎜Pass by reference🎜 : Transmettez l'adresse de la variable, et la fonction peut accéder et modifier la variable d'origine. 🎜🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal