Junior — Middle
Comment indiquer au compilateur qu'une classe spécifique implémente une interface donnée ?
sobes.tech IA
Réponse de l'IA
En Go, l'implémentation d'une interface se fait de manière implicite : si un type implémente toutes les méthodes d'une interface, il est automatiquement considéré comme implémentant cette interface. Il n'est pas nécessaire de le spécifier explicitement.
Exemple :
package main
import "fmt"
type Speaker interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Wouf!"
}
func main() {
var s Speaker
d := Dog{}
s = d // Dog implémente l'interface Speaker
fmt.Println(s.Speak())
}
Si vous souhaitez vérifier explicitement qu'un type implémente une interface, vous pouvez utiliser une vérification de compilation :
var _ Speaker = (*Dog)(nil) // Le compilateur vérifiera que *Dog implémente Speaker
Ainsi, en Go, les interfaces sont implémentées automatiquement lorsque les méthodes nécessaires sont présentes.