الواجهة (interface) في Go تحدد مجموعة من توقيعات الدوال — عقد يمثل سلوك معين. والجزء الحاسم هو أن الواجهات يتم تلبيتها بشكل ضمني: أي نوع (type) يحتوي على تلك الدوال يلبي الواجهة تلقائياً، بدون الحاجة لتصريح صريح "implements". هذا النهج الهيكلي (structural) والمبني على duck-typing فريد وقوي جداً.
تعريف الواجهات والتنفيذ الضمني
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
