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
}