Sobes.tech
Junior — Middle

Qual é a função do objeto receiver com um ponteiro para a estrela?

sobes.tech IA

Resposta da IA

No Go, o receptor de objeto com ponteiro (por exemplo, func (r *ReceiverType) Method()) permite que o método altere o estado do próprio objeto ao qual o receptor aponta. Usar um ponteiro em vez de um valor oferece as seguintes vantagens:

  • Permite modificar os campos da estrutura dentro do método.
  • Evita a cópia de estruturas grandes ao chamar o método, o que melhora o desempenho.
  • Garante consistência se outros métodos aceitarem ponteiros.

Exemplo:

type Counter struct {
    count int
}

func (c *Counter) Increment() {
    c.count++  // altera o campo da estrutura através do ponteiro
}

func main() {
    c := Counter{}
    c.Increment()
    fmt.Println(c.count)  // Vai imprimir 1
}