Avatar ·

Erreur "X does not implement Y (method has a pointer receiver)" en Go

Bonjour ! J'ai commencé à apprendre Go et j'ai rencontré une erreur étrange en travaillant avec les interfaces. J'ai une interface simple `Speaker` avec une méthode `Speak()`, et une structure `Dog` qui implémente cette méthode. Mais quand j'essaie de passer une valeur `Dog` à une fonction qui attend un `Speaker`, le compilateur génère l'erreur suivante : ``` cannot use dog (variable of type Dog) as Speaker value in argument to makeSpeak: Dog does not implement Speaker (method Speak has a pointer receiver) ``` Voici mon code : ```go package main import "fmt" type Speaker interface { Speak() string } type Dog struct { Name string } func (d *Dog) Speak() string { return "Ouaf ! Je suis " + d.Name } func makeSpeak(s Speaker) { fmt.Println(s.Speak()) } func main() { dog := Dog{Name: "Bobik"} makeSpeak(dog) } ```