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