Junior — Middle
Comment peut-on déterminer si une structure donnée implémente une interface donnée?
sobes.tech IA
Réponse de l'IA
En Go, l'implémentation d'une interface est vérifiée implicitement : si un type contient toutes les méthodes déclarées dans l'interface, il implémente automatiquement cette interface.
Pour déterminer si une structure implémente une interface donnée, on peut :
- Essayer d'assigner une instance de la structure à une variable de type interface — si la compilation réussit, cela signifie que la structure implémente l'interface.
- Utiliser une vérification statique avec _var _ :
var _ MyInterface = (*MyStruct)(nil)
Si ce code compile sans erreur, cela signifie que MyStruct implémente l'interface MyInterface.
Exemple :
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implémentation
}
// Vérification de l'implémentation de l'interface
var _ MyInterface = (*MyStruct)(nil)
Ainsi, en Go, il n'est pas nécessaire de déclarer explicitement l'implémentation d'une interface — il suffit d'implémenter toutes ses méthodes.