Une interface Go définit un ensemble de signatures de méthodes — un contrat de comportement. Crucialmente, les interfaces sont satisfaites implicitement : tout type qui possède ces méthodes satisfait automatiquement l'interface, sans déclaration explicite « implements ». Cette approche structurelle de duck-typing est distinctive et puissante.
Définir et implémenter implicitement une interface
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
