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.
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,因为原始值没有改变 }
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,因为原始值被修改 }
在这个示例中,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.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
. 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!