Avatar ·

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

¡Hola! Empecé a estudiar Go y me encontré con un error extraño al trabajar con interfaces. Tengo una interfaz simple `Speaker` con un método `Speak()`, y una estructura `Dog` que implementa este método. Pero cuando intento pasar un valor `Dog` a una función que espera `Speaker`, el compilador muestra el error: ``` 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) ``` Aquí está mi código: ```go package main import "fmt" type Speaker interface { Speak() string } type Dog struct { Name string } func (d *Dog) Speak() string { return "¡Guau! Soy " + d.Name } func makeSpeak(s Speaker) { fmt.Println(s.Speak()) } func main() { dog := Dog{Name: "Bobik"} makeSpeak(dog) }