Avatar ·

Value receiver vs. pointer receiver: quando usar qual em Go?

Olá a todos! Comecei a estudar Go recentemente e não consigo entender os receivers em métodos. Até entendo a diferença entre value receiver e pointer receiver, mas na prática fico sempre em dúvida sobre qual escolher. Por exemplo, tenho uma struct: ```go type User struct { Name string Age int } ``` E quero escrever um método que aumente a idade do usuário. Estou certo de que aqui preciso de um pointer receiver? ```go func (u *User) Birthday() { u.Age++ } ``` E se eu quiser apenas exibir informações sobre o usuário, posso usar um value receiver? ```go func (u User) PrintInfo() { fmt.Printf("Name: %s, Age: %d\n", u.Name, u.Age) } ``` Mas o que me confunde é: li em algum lugar que, se a struct for grande, o value receiver