Quelle est la relation entre une interface vide et une interface normale en programmation?
sobes.tech IA
Réponse de l'IA
En Go, l'interface vide interface{} est une interface qui ne contient aucune méthode. Elle peut contenir une valeur de n'importe quel type, car tous les types implémentent par défaut l'interface vide. En revanche, une interface normale définit un ensemble de méthodes qu'un type doit implémenter pour correspondre à cette interface.
Ainsi, la relation entre l'interface vide et l'interface normale en Go est que l'interface vide est un conteneur universel pour des valeurs de n'importe quel type, tandis que l'interface normale définit un contrat que des types spécifiques doivent respecter. L'interface vide est souvent utilisée pour stocker et transmettre des données sans type spécifique, tandis que les interfaces normales servent à définir le comportement des objets.
Exemple :
var any interface{} = 42 // l'interface vide peut contenir n'importe quelle valeur
// Interface normale
type Reader interface {
Read(p []byte) (n int, err error)
}
// Type implémentant Reader
type File struct {}
func (f File) Read(p []byte) (int, error) {
// implémentation
return 0, nil
}
var r Reader = File{} // File implémente l'interface Reader