Sobes.tech
Junior — Middle

Comment la transmission d'éléments entre fonctions et structures est-elle réalisée dans le langage Golang?

sobes.tech IA

Réponse de l'IA

En Go, la transmission d'éléments entre fonctions et structures peut se faire de deux manières principales : par valeur et par pointeur.

  • Par valeur : la structure ou la variable elle-même est copiée, les modifications dans la fonction n'affectent pas l'original.
  • Par pointeur : l'adresse de la structure ou de la variable est transmise, ce qui permet à la fonction de modifier les données originales.

Exemple :

package main
import "fmt"

type Person struct {
    Name string
    Age  int
}

func updateByValue(p Person) {
    p.Age = 30 // ne changera que la copie
}

func updateByPointer(p *Person) {
    p.Age = 30 // changera l'original
}

func main() {
    person := Person{Name: "Ivan", Age: 25}
    updateByValue(person)
    fmt.Println(person.Age) // 25

    updateByPointer(&person)
    fmt.Println(person.Age) // 30
}

Ainsi, si vous souhaitez modifier les données à l'intérieur de la fonction, transmettez un pointeur vers la structure. Si aucune modification n'est nécessaire, vous pouvez transmettre par valeur.