Fehler "X does not implement Y (method has a pointer receiver)" in Go
Hallo! Ich habe angefangen, Go zu lernen und bin auf einen seltsamen Fehler bei der Arbeit mit Interfaces gestoßen. Ich habe ein einfaches Interface `Speaker` mit einer Methode `Speak()` und eine Struktur `Dog`, die diese Methode implementiert. Aber wenn ich versuche, einen `Dog`-Wert an eine Funktion zu übergeben, die `Speaker` erwartet, gibt der Compiler folgenden Fehler aus:
```
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)
```
Hier ist mein Code:
```go
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {
Name string
}
func (d *Dog) Speak() string {
return "Wuff! Ich bin " + d.Name
}
func makeSpeak(s Speaker) {
fmt.Println(s.Speak())
}
func main() {
dog := Dog{Name: "Bobby"}
makeSpeak(dog)
}
```