एक Go interface method signatures चा एक संच परिभाषित करते — वर्तनाचा एक करार. महत्त्वाचे म्हणजे, interfaces अपरिहार्यपणे समाधानी केल्या जातात: कोणताही प्रकार ज्याला ते methods आहेत तो स्वयंचलितपणे interface समाधानी करतो, कोणताही स्पष्ट "implements" declaration न करता. हा structural, duck-typing दृष्टिकोन अलौकिक आणि शक्तिशाली आहे.
Interface परिभाषित करणे आणि अपरिहार्यपणे लागू करणे
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
