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`.