Avatar ·

Value receiver vs. pointer receiver : quand utiliser quoi en Go ?

Bonjour à tous ! Je viens de commencer à apprendre Go et je n'arrive pas à comprendre les receivers dans les méthodes. Je pense comprendre la différence entre value receiver et pointer receiver, mais en pratique je doute constamment de ce qu'il faut choisir. Par exemple, j'ai une structure : ```go type User struct { Name string Age int } ``` Et je veux écrire une méthode qui augmente l'âge de l'utilisateur. Est-ce que je comprends bien qu'il faut un pointer receiver ici ? ```go func (u *User) Birthday() { u.Age++ } ``` Et si je veux simplement afficher les informations sur l'utilisateur, puis-je utiliser un value receiver ? ```go func (u User) PrintInfo() { fmt.Printf("Name: %s, Age: %d\n", u.Name, u.Age) } ``` Mais voici ce qui me trouble : j'ai lu quelque part que si la structure est grande, le value receiver