Avatar ·

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