Junior — Middle
Wat is het verschil tussen een structuur zonder methoden en een interface in een programmeertaal?
sobes.tech AI
Antwoord van AI
In Go is een structuur (struct) een concreet gegevenstype dat een reeks velden (variabelen) bevat. Het beschrijft hoe de gegevens zijn georganiseerd, maar bevat zelf geen gedrag.
Het interface (interface) in Go beschrijft een set methoden die een type moet implementeren om aan dat interface te voldoen. Het interface bevat geen gegevens, alleen de handtekeningen van de methoden.
Belangrijkste verschillen:
- Struct: is een concrete implementatie met velden.
- Interface: een abstractie die gedrag beschrijft via methoden.
- Een struct kan één of meerdere interfaces implementeren als het de juiste methoden heeft.
Voorbeeld:
// Struct zonder methoden
type User struct {
Name string
Age int
}
// Interface met methode
type Greeter interface {
Greet() string
}
// Implementatie van de interface
func (u User) Greet() string {
return "Hello, " + u.Name
}
Hier is User een structuur met velden, en Greeter is een interface die gedrag beschrijft. Zonder de methode Greet implementeert de structuur User de interface Greeter niet.