Error "pointer to interface, not interface": how to properly pass interfaces in Go?
Hello everyone! I'm new to Go and encountered an unclear compilation error: "*MyInterface is pointer to interface, not interface". \n\nI have an interface and a struct that implements it:\n\n```go\ntype Animal interface {\n Speak() string\n}\n\ntype Dog struct{}\n\nfunc (d *Dog) Speak() string {\n return "Woof!"\n}\n```\n\nI want to pass a pointer to the struct to a function that accepts an interface:\n\n```go\nfunc MakeSound(a Animal) {\n fmt.Println(a.Speak())\n}\n\nfunc main() {\n dog := &Dog{}\n MakeSound(dog) // works\n}\n```\n\nBut if I try to pass a **pointer to an interface** (for some reason), I get an error:\n\n```go\nfunc main() {\n var animalInterface Animal\n animalInterface = &Dog{}\n MakeSound(&animalInterface) // error: cannot use &animalInterfa