Erreur "X does not implement Y (method has a pointer receiver)" en Go
Bonjour à tous ! Je viens de commencer à apprendre Go et je suis tombé sur une erreur que je ne comprends pas. J'ai une interface et une structure qui, me semble-t-il, l'implémente. Mais le compilateur dit que non.
Voici mon code :
```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) // Erreur : Person does not implement Greeter (method Greet has pointer receiver)
}
```
Erreur : `Person does not implement Greeter (method Greet has pointer receiver)`. Je comprends que la méthode `Greet()` est définie sur le pointeur `*Person`, et non sur `Person`.