Ein Go Interface definiert eine Menge von Methodensignaturen — einen Verhaltensvertrag. Entscheidend ist, dass Interfaces implizit erfüllt werden: Jeder Typ, der diese Methoden hat, erfüllt das Interface automatisch, ohne explizite "implements"-Deklaration. Dieser strukturelle, Duck-Typing-Ansatz ist charakteristisch und mächtig.
Defining and implicitly implementing an interface
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
