Maison > développement back-end > Golang > Comment changer le contenu de la fonction dans Golang

Comment changer le contenu de la fonction dans Golang

PHPz
Libérer: 2023-04-24 10:00:56
original
563 Les gens l'ont consulté

Golang est un langage de programmation conçu pour résoudre divers problèmes qui surviennent lors de l'écriture de grands programmes. Golang possède une syntaxe relativement simple et de puissantes capacités de concurrence, ce qui le rend largement utilisé dans des domaines tels que le développement Web et les systèmes distribués. Dans Golang, différentes manières d'exploiter les données sont proposées. Cet article se concentrera sur la façon de modifier le contenu de la fonction.

1. Modification des paramètres de fonction

Dans Golang, il existe deux manières de transférer les paramètres de fonction : le transfert de valeur et le transfert de pointeur. Passer par valeur signifie qu'une copie de la variable est transmise et que les modifications apportées au paramètre dans la fonction n'affecteront pas la variable d'origine. Le passage du pointeur signifie que l'adresse de la variable est transmise et que les modifications apportées au paramètre dans la fonction affecteront la variable d'origine.

L'exemple de code est le suivant :

package main

import "fmt"

func main() {
    // 值传递
    x := 10
    modify(x)
    fmt.Println("x =", x)

    // 指针传递
    y := 10
    modifyByPointer(&y)
    fmt.Println("y =", y)
}

func modify(x int) {
    x = 20
}

func modifyByPointer(y *int) {
    *y = 20
}
Copier après la connexion

Le résultat de sortie est :

x = 10
y = 20
Copier après la connexion

Comme le montre le résultat de sortie, le transfert de valeur ne modifiera pas la valeur de la variable d'origine, tandis que le transfert de pointeur modifiera la valeur de la variable d'origine. variable d'origine.

2. Modification de la valeur de retour de la fonction

Dans Golang, les fonctions peuvent avoir plusieurs valeurs de retour. Si la fonction renvoie la valeur d'une variable, les modifications apportées à la valeur renvoyée dans la fonction n'affecteront pas la variable d'origine. Cependant, si la fonction renvoie un pointeur vers une variable, les modifications apportées à la variable pointée par le pointeur renvoyé dans la fonction affecteront la variable d'origine.

L'exemple de code est le suivant :

package main

import "fmt"

func main() {
    x := 10
    y := modifyAndReturnPointer(&x)
    fmt.Println("x =", x)
    fmt.Println("y =", *y)
}

func modifyAndReturnPointer(x *int) *int {
    *x = 20
    return x
}
Copier après la connexion

Le résultat de sortie est :

x = 20
y = 20
Copier après la connexion

Il ressort du résultat de sortie que la modification de la variable pointée par le pointeur renvoyé à l'intérieur de la fonction affectera la variable d'origine.

3. Modifications lorsque des variables sont utilisées comme paramètres de fonction

Dans Golang, les fonctions peuvent transmettre des variables en tant que paramètres et modifier les variables à l'intérieur de la fonction. Si elle est passée par valeur, alors la modification de la variable à l'intérieur de la fonction n'affectera pas la variable d'origine ; si elle est passée par pointeur, alors la modification de la variable à l'intérieur de la fonction affectera la variable d'origine.

L'exemple de code est le suivant :

package main

import "fmt"

type Person struct {
    name string
    age  int
}

func main() {
    p := Person{name: "Tom", age: 20}
    fmt.Println(p)
    modifyStruct(&p)
    fmt.Println(p)
}

func modifyStruct(p *Person) {
    p.age = 30
}
Copier après la connexion

Le résultat de sortie est :

{Tom 20}
{Tom 30}
Copier après la connexion

Il peut être vu à partir du résultat de sortie que la modification de la structure pointée par le pointeur à l'intérieur de la fonction affectera la variable d'origine.

En bref, en Golang, la façon dont la variable est modifiée à l'intérieur de la fonction dépend de la façon dont la variable est passée par pointeur, alors la modification de la variable à l'intérieur de la fonction affectera la variable d'origine. Par conséquent, lors de l'écriture d'un programme Golang, vous devez choisir la méthode de livraison et la méthode de modification appropriées en fonction de la situation réelle.

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!

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