Avatar ·

Erro "X does not implement Y (method has a pointer receiver)" em Go

Olá a todos! Comecei a estudar Go e me deparei com um erro que não consigo entender. Tenho uma interface e uma struct que, ao que parece, a implementa. Mas o compilador diz que não. Aqui está meu código: ```go package main import "fmt" type Greeter interface { Greet() string } type Person struct { Name string } func (p *Person) Greet() string { return "Hello, " + p.Name } func sayHello(g Greeter) { fmt.Println(g.Greet()) } func main() { p := Person{Name: "Alice"} sayHello(p) // Erro: Person does not implement Greeter (method Greet has pointer receiver) } ``` Erro: `Person does not implement Greeter (method Greet has pointer receiver)`. Eu entendo que o método `Greet()` está definido no ponteiro `*Person`, e não em `Person`.