Go में इंटरफ़ेस को सही तरीके से कैसे पास करें: «पॉइंटर टू इंटरफ़ेस, नॉट इंटरफ़ेस» एरर
सभी को नमस्ते! मैं Go में नया हूँ और एक समझ से परे कंपाइलेशन एरर का सामना किया: «*MyInterface is pointer to interface, not interface»। \n\nमेरे पास एक इंटरफ़ेस और एक स्ट्रक्चर है जो इसे इम्प्लीमेंट करता है:\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\nमैं स्ट्रक्चर पर एक पॉइंटर को उस फंक्शन में पास करना चाहता हूँ जो इंटरफ़ेस को स्वीकार करता है:\n\n```go\nfunc MakeSound(a Animal) {\n fmt.Println(a.Speak())\n}\n\nfunc main() {\n dog := &Dog{}\n MakeSound(dog) // काम करता है\n}\n```\n\nलेकिन अगर मैं **इंटरफ़ेस पर पॉइंटर** (किसी कारण से) पास करने की कोशिश करता हूँ, तो मुझे एरर मिलता है:\n\n```go\nfunc main() {\n var animalInterface Animal\n animalInterface = &Dog{}\n MakeSound(&animalInterface) // एरर: cannot use &animalInter