Junior — Middle
Quelle est la différence entre une structure sans méthodes et une interface dans un langage de programmation?
sobes.tech IA
Réponse de l'IA
En Go, une structure (struct) est un type de données concret qui contient un ensemble de champs (variables). Elle décrit comment les données sont organisées, mais ne contient pas de comportement en soi.
L'interface en Go décrit un ensemble de méthodes qu'un type doit implémenter pour correspondre à cette interface. L'interface ne contient pas de données, seulement les signatures des méthodes.
Principales différences :
- Structure : c'est une implémentation concrète avec des champs.
- Interface : une abstraction décrivant le comportement via des méthodes.
- Une structure peut implémenter une ou plusieurs interfaces si elle possède les méthodes appropriées.
Exemple :
// Structure sans méthodes
type User struct {
Name string
Age int
}
// Interface avec méthode
type Greeter interface {
Greet() string
}
// Implémentation de l'interface
func (u User) Greet() string {
return "Hello, " + u.Name
}
Ici, User est une structure avec des champs, et Greeter est une interface décrivant le comportement. Sans la méthode Greet, la structure User n'implémente pas l'interface Greeter.