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.