Déclaration d'interface
Contexte
Section intitulée « Contexte »Une interface définit un ensemble de signatures de méthodes. En Go, les interfaces sont satisfaites implicitement – un type implémente une interface s’il fournit toutes les méthodes déclarées. Aucun mot‑clé implements explicite n’est nécessaire.
Définir une interface Speaker et deux structures qui l’implémentent.
Code exemple
Section intitulée « Code exemple »package main
import "fmt"
type Speaker interface { Speak() string}
type Chien struct{}func (c Chien) Speak() string { return "Woof !" }
type Chat struct{}func (c Chat) Speak() string { return "Miaou !" }
func faireDuBruit(s Speaker) { fmt.Println(s.Speak())}
func main() { chien := Chien{} chat := Chat{} faireDuBruit(chien) faireDuBruit(chat)}Woof !Miaou !