Een Go interface definieert een verzameling van methodhandtekeningen — een contract van gedrag. Cruciaal is dat interfaces impliciet worden voldaan: elk type dat deze methoden heeft, voldoet automatisch aan de interface, zonder expliciete "implements" declaratie. Deze structurele, duck-typing benadering is onderscheidend en krachtig.
Interfaces definiëren en impliciet implementeren
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
