एक Go interface method signatures का एक सेट परिभाषित करता है — व्यवहार का एक अनुबंध। महत्वपूर्ण बात यह है कि interfaces अंतर्निहित रूप से (implicitly) संतुष्ट होते हैं: कोई भी type जिसमें वे methods हों स्वतः interface को संतुष्ट करता है, कोई स्पष्ट "implements" घोषणा नहीं। यह structural, duck-typing दृष्टिकोण विशिष्ट और शक्तिशाली है।
एक interface परिभाषित करना और अंतर्निहित रूप से लागू करना
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
